-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
eval.txt についての質問 #165
Comments
どちらがわかりやすいかと言われると前者な気がします。 |
初歩的な質問で申しわけありません。 そうすると、is や isnot には「系」が付いていないので、 'is' のみが利用できて、'is#', 'is?' は使えない と受け取れます (isnot も同様)。実際そうなのでしょうか? (Funcref は「大文字小文字は常に区別される」と書かれているので、List や Dictionary と表記を合わせようと考えたのが間違いでしたか…‥。Vim script を熟知している thinca さんや tyru さんに言葉を考えてもらうのが得策ですね。) |
自分も前者がいいですね。 あと @uakms さんが指摘した is, isnot には「系」が付いていない、というのもその通りで「系」が付いていた方がいいと思います。
を推します。 |
ちなみに最近は Vimjas/vint#233 を見て ==, != 系はリストの比較だけに使おうかなぁ、なんて考えてたりもします(is,isnot 系は文字列と数値の比較で暗黙の変換が働かないのでより厳格)。 |
List と Dictionary については
ということでよろしいでしょうか? Funcref についても同様に変更したいところです。
しかし、「大文字小文字は常に区別される」とのことなので、
の扱いはどのようになっているのでしょうか。 質問ばかりで申しわけありません。 |
返事が遅れ申し訳ありません。
はい、それでいいと思います。
「常に区別される」と書いてある以上は「使えるけれど意味がないもの」だと思います。 function! s:foo() abort
endfunction
function! s:Foo() abort
endfunction
function! Foo() abort
endfunction
let s:op = '=='
let s:funcrefs = [function('s:foo'), function('s:Foo'), function('Foo')]
for s:lhs in s:funcrefs
for s:rhs in s:funcrefs
echo s:lhs s:op s:rhs eval('s:lhs' . s:op . 's:rhs')
endfor
endfor |
ありがとうございます! (もうすでに crazymaster さんや k-takata さんが catch up 作業をしてるかもしれませんが……) |
"equal" などは日本語訳で「等しい」となって消えていますので、ちょっと戸惑うかも。個人的には "equal" の方が良いと思います。どちらに合わせた方が良いでしょうか?
と書かれているので、List や Dictionary についても "isnot" が使えるようです (実際どうなのかわかりません)。原文の方に "isnot" の加筆を PR する案件でしょうか?
List
A |List| can only be compared with a |List| and only "equal", "not equal" and
"is" can be used. This compares the values of the list, recursively.
Ignoring case means case is ignored when comparing item values.
リスト|List|はリストとだけ比較可能で、==系、!=系、is、isnotのみ利用できる。
これらはそれぞれのリストの値を再帰的に比較する。大文字小文字無視にすると要素を
比較するときに大文字小文字を無視する。
Dictionary
A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
equal" and "is" can be used. This compares the key/values of the |Dictionary|
recursively. Ignoring case means case is ignored when comparing item values.
辞書|Dictionary|は辞書とだけ比較可能で、==系、!=系、is、isnotのみ利用できる。
これらは辞書のキー/値を再帰的に比較する。大文字小文字無視にすると要素を
比較するときに大文字小文字を無視する。
Funcref
A |Funcref| can only be compared with a |Funcref| and only "equal", "not
equal", "is" and "isnot" can be used. Case is never ignored. Whether
arguments or a Dictionary are bound (with a partial) matters. The
Dictionaries must also be equal (or the same, in case of "is") and the
arguments must be equal (or the same).
|Funcref|は|Funcref|とだけ比較可能で、"equal", "not equal", "is", "isnot" のみ
利用できる。大文字小文字は常に区別される。引数や辞書が(部分適用に)バインドされ
ているかどうかも重要である。辞書も同値(あるいは "is" の場合は同一)でなければな
らず、引数も同値(あるいは同一)でなければならない。
The text was updated successfully, but these errors were encountered: