Skip to content

Commit 025b02e

Browse files
committed
Change until just before *vim9-gotchas*
1 parent c0f1db8 commit 025b02e

File tree

1 file changed

+32
-34
lines changed

1 file changed

+32
-34
lines changed

doc/vim9.jax

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,7 +1018,7 @@ For ループ ~
10181018
*null_class* *null_dict* *null_function* *null_job*
10191019
*null_list* *null_object* *null_partial* *null_string*
10201020
*E1034*
1021-
Vim9 script では以下の定義済みの値が使えます: >
1021+
Vim9 script では以下の定義済みの値が使用できる: >
10221022
true
10231023
false
10241024
null
@@ -1033,52 +1033,50 @@ Vim9 script では以下の定義済みの値が使えます: >
10331033
null_object
10341034
null_partial
10351035
null_string
1036-
`true``v:true` と同じ、`false``v:false` と同じ、そして`null`
1037-
`v:null` と同じです。
1038-
1039-
`null` の型が "special" であるのに対し、他の "null_" の値の型はそれぞれの名前
1040-
で示される型になります。かなり多くの場面で null 値は空の値と同値と扱われます
1041-
が、いつでもそうだというわけではありません。スクリプトローカル変数は `:unlet`
1042-
で削除することができないので、これらの null 値はスクリプトローカル変数をクリア
1043-
するのに便利です。例: >
1036+
`true``v:true` と同じ、`false``v:false` と同じ、`null``v:null`
1037+
同じである。
1038+
1039+
`null` は "special" 型だが、その他の "null_" で始まる値は名前で示された型にな
1040+
る。多くの場合、null 値は空の値と同じように扱われるが、必ずしもそうとは限らな
1041+
い。これらの値はスクリプトローカル変数をクリアするのに便利である。なぜなら
1042+
`:unlet` では削除できないためである。例: >
10441043
var theJob = job_start(...)
10451044
# ジョブに仕事をさせる
10461045
theJob = null_job
10471046
1048-
また、それらの値は引数の既定値とするのにも便利です: >
1047+
これらの値は引数のデフォルト値としても役立つ: >
10491048
def MyFunc(b: blob = null_blob)
10501049
# Note: null_blob ではなく null と比較し、
10511050
# デフォルト値と空 blob を区別する。
10521051
if b == null
10531052
# 引数 b が与えられなかった
1054-
null に対するテストについての詳細は|null-compare| を参照。
1053+
null との比較テストに関する詳細は|null-compare| を参照。
10551054

1056-
`null` はどんな値と比較すること可能で、型エラーが発生することはありません。
1057-
しかし、`null` と数値、浮動小数点数、真偽値との比較は常に `false` になります。
1058-
これは `null` 0 あるいは `false` を比較した時に `true` になる旧来の Vim
1059-
script とは異なる点です
1055+
`null` を任意の値と比較することは可能であり、型エラーは発生しない。ただし、
1056+
`null` を数値、浮動小数点数、または真偽値と比較すると、常に `false` が返され
1057+
る。これは`null` 0 または `false` と比較すると `true` が返される旧来のス
1058+
クリプトとは異なる
10601059
*vim9-false-true*
1061-
真偽値を文字列に変換するときは、旧来の Vim script のように `v:false`
1062-
`v:true` が使われるのではなく、`false``true` が使われます。`v:none` につい
1063-
ては、他の言語に同等のものが存在しないので、`v:none``none` に変換されるよ
1064-
うになることはありません。
1060+
真偽値を文字列に変換する場合、旧来のスクリプトのように `v:false``v:true`
1061+
ではなく、 `false``true` が使用される。`v:none` には `none` の代替がなく、
1062+
他の言語にも同等のものはない。
10651063
*vim9-string-index*
1066-
文字列に対してインデックス [idx] や [idx : idx] を使用すると、バイト単位ではな
1067-
く文字単位のインデックスとして扱われます。結合文字が含まれています。例: >
1064+
[idx] による文字列のインデックス指定、または [idx : idx] によるスライスの取得
1065+
では、バイトインデックスではなく文字インデックスが使用される。合成文字も含まれ
1066+
る。例: >
10681067
echo 'bár'[1]
1069-
旧来の Vim script ではこれは文字 0xc3 (不正な文字) となりますが、Vim9 script
1070-
では文字列 'á' が得られます。
1071-
負のインデックスを指定すると、文字列の末尾から数えられます。"[-1]" は最後の文
1072-
字です。
1073-
最後の文字を除外するには |slice()| を使用します。
1074-
合成文字を分けてカウントするには |strcharpart()| を使ってください。
1075-
インデックスが範囲外の場合は、空文字列になります。
1076-
1077-
旧来のスクリプトでは "++var" と "--var" は寡黙に処理され、何の効果ももたらしま
1078-
せん。これは Vim9 script ではエラーになります。
1079-
1080-
ゼロから始まる数値は8進数とはみなされません、"0o" から始まる数値だけが8進数と
1081-
みなされます: "0o744"。|scriptversion-4|
1068+
旧来のスクリプトでは文字 0xc3 (不正なバイト) が返され、Vim9 script では文字列
1069+
'á' が返される。
1070+
負のインデックスは末尾からカウントし、"[-1]" は最後の文字である。
1071+
最後の文字を除外するには |slice()| を使用する。
1072+
合成文字を個別にカウントするには |strcharpart()| を使用する。
1073+
インデックスが範囲外の場合、結果は空文字列になる。
1074+
1075+
旧来のスクリプトでは、"++var" と "--var" は何も表示されずにそのまま受け入れら
1076+
れ効果がない。これは Vim9 script ではのエラーである。
1077+
1078+
0 で始まる数値は 8 進数とはみなされず、"0o" で始まる数値のみが 8 進数として扱
1079+
われる: "0o744"。|scriptversion-4|
10821080

10831081

10841082
気をつけるべきこと ~

0 commit comments

Comments
 (0)