4

そのようなコードがObjectiveCで使用されていることを理解しています。

_conversation.lastMessageSentDate = message.sentDate = [NSDate date];

このコードがとの両方conversation.lastMessageSentDateを設定message.sentDateすると仮定するのは正しいNSDate dateですか?

それとも、このコード行を誤解していますか?

他の言語にはそのようなフォーマットがありますか?私はPythonとJavaでプログラミングしましたが、このようなコードは見たことがありません。

ありがとう。

4

2 に答える 2

5

これらは2つの宣言ではなく、2つの代入ステートメントです。あなたはそれがどのように機能するかについても絶対に正しいです。

それが機能する理由は、代入式が値を生成する有効な式であるためです。右端の割り当てが最初に評価されます

message.sentDate = [NSDate date]

次に、2番目の割り当て:

_conversation.lastMessageSentDate = /*the result of the first assignment*/

これは評価の順序であり、実際の割り当ての順序ではないことに注意してください。シーケンスポイントがない場合、副作用の順序が指定されていないため、これらは任意の順序で発生する可能性があります。

于 2013-03-06T01:24:51.560 に答える
0

複数の割り当ては多くの言語で一般的であり、人々は単一の割り当てよりも頻繁にそれらを使用しません。

Rubyは、次のような複数の割り当てでいくつかの興味深いことを行います。

name, address1, address2, city, step = record.split(',')  # split a CSV record into multiple fields 
于 2013-03-06T01:24:57.707 に答える