Perl での 2 変数のスワップ.
my $a = 3; my $b = 2; ($a, $b) = ($b, $a);
と書くべきところを間違えて
$a, $b = $b, $a;
と書いてしまうと,$a も $b も変化しなくて悩むという話.
これを見て,一瞬ちょっと違った悩み方をした.
「ん? コンマ演算子はオペランドを左から順に評価して最後の値を返すから, = の左側の『$a, $b』は $b になって,右側の 『$b, $a』は $a になって,その結果 ($a, $b) == (3, 3) になるんじゃないの?」
もちろんそんなことはなくて,コンマ演算子より代入演算子の方が優先度が高いので,「$a」「$b = $b」「$a」が順に評価されて,結局変化無し,が正しい.
コンマと代入の優先順序なんて,普段から for 文とかで使いまくっててよく分かってるはずなのに,どうして勘違いしたんだろう,と考えてみたけど,たぶん「($a, $b) = ($b, $a);」の構造が先入観として作用して,頭が勝手に代入の前後それぞれをグルーピングしちゃったんだろうな,と理解した.
逆にいうと,C でうっかり
int a = 3; int b = 2; (a, b) = (b, a);
なコードを書くと,(3, 3) になっちゃうわけですな.(← どんなうっかりだ)
ついでに思い出した有名なやつ.(いや正確には,自力では思い出せなくてぐぐったのでメモしとく)
a = a ^ b; b = a ^ b; a = a ^ b;
これ最初に考えた人ってすごいよなあ.
すげー!! 要らねー!!
* [Williamtut] Nice blog ) http://anmdcf7i.com my blog (2015-03-27 10:23:34)
* [Michaelkisy] Onlinesites gratis nye veninder århus - ... (2015-03-07 12:08:49)
* [Charliekt] gor man en quiz Hur skriver man tecken f... (2015-03-05 06:53:03)
* [Charliekt] lyckad Sms pick up tongeren gratis dan... (2015-03-04 20:39:33)
* [Charliekt] motala speed oldenburg, a vegetarianer -... (2015-03-04 14:21:20)
* ...
[サーバー] クライアントからのコマンドに応答するコンピュータまたはプログラム。サーバーは、やさしくて思慮分別を備えたコンピュータ一家のおじいちゃんのようなものです。すべての知恵は、おじいちゃんから子、子から孫へと流れています。
[クライアント] 別のコンピュータ (サーバー) によって提供されるファイル、ソフトウェアなどの共有アイテムにアクセスするコンピュータです。サーバーがおじいちゃんなら、クライアントは孫と言えます。
うはーこれはひどい.
英語版の翻訳のせいかとも思ったが,どうも日本人が書いたようなんだよな….
少なくとも,server と client の英語の意味を知らない人が書いてることだけは確実と思われる.
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
2000 : 01 02 03 04 05 06 07 08 09 10 11 12
1999 : 01 02 03 04 05 06 07 08 09 10 11 12
1998 : 01 02 03 04 05 06 07 08 09 10 11 12
1997 : 01 02 03 04 05 06 07 08 09 10 11 12
1996 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2012-02-13 02:02