MY PIANOS
CALENDAR
S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< September 2018 >>
ARCHIVES
CATEGORIES
MOBILE
qrcode
<< ER-4S first impression | main | ER-4S 開封の儀 >>
Swift3 の仕様 らしい…
XCode7.3 でちょいと遊んでいたら…次期バージョンのSwift3では、インクリメント演算子がなくなるらしいことが判明しました。


な風に、インクリメント演算子を使ってみたら、
・Pre Increment    「++変数」の表現
・Post Increment    「変数++」の表現
共に、ワーニングが立ってしまった。

で、ワーニング詳細を見てみると…


Swift3では、インクリメント演算子がなくなるので使わない方が良いよぉー、って…ご親切な事に、「+=1」に置き換えるお手伝いもしてくれるらしい。

しかしなぁ、Pre(前置き)と、Post(後置き)は、動作が異なるんだけどなぁ…

かつてコアなC言語使いだった僕には、かなり違和感があったりします。無いなら始めっから無いほうが良いだろう、って思う訳で、過去に(現在も)有るのなら無くすのはどうかと…


注;ご存知の事と思いますが、「++変数」と「変数++」の違いは「++」のインクリメント(+1)動作が変数の数値に対する評価前なのか、評価後なのか、と言う違いがあります。
じっくり、上の2つの画像を見比べて頂けると分かりますが、右はじカラムにある評価数値が異なります。変数値の評価によって条件判断を場合に大きな問題になる訳です。


要するに、全部「+=1」に置き換えれば良い、って言う話じゃないんだけどなぁ。これまでPost Incrementを多用していた人は大変ですね。ロジックを少し見直さないといけないじゃ無いですか。

確かに、使い慣れないウチはこの「評価前」か「評価後」を誤解したり、無視しちゃったりで間違いを起こすことが有るのかもしれません。現実に、パソコンC言語処理系の黎明期頃は、ちゃんと動作しないコンパイラなんかもありましたけどね。(^^ゞ

でも、使い慣れると便利だったりするんで、けっこう使い分けるんですよね。という面では、逆に第三者がプログラムを見ると、罠仕掛けてあるかのように、思えたりもする訳ですが…(^^ゞ


という事で、こんなわけ…意図せず罠仕掛けちゃう様な悪さする人が多いの…で、本当の意味で曖昧さを無くす為に、なくなっちゃうんじゃ無いかと思ったりしてます。
これからは、しっかり 変数+=1 って書きましょうか…無くなるんだから仕方ないんだけど…(´・ω・`)
| Tech_Mac | 22:45 | comments(2) | - | pookmark |
コメント
罠を仕掛けているのは、Pre Incrementなんぞややこしいコードを書いている人のほうです。
| あ | 2016/11/08 4:08 PM |
あ さん、はじめまして…ですかね、「あ」さんが他にもいたような気もするのですが…ま、お許し下さい…(^_^;)

構造化アセンブラと呼ばれる頃からCを使ってきた人間なので、あまりややこしさは感じませんが、たしかに僕の時代でも、考えるのが面倒だからPost Incrementしか書かない、って人もいましたから、有ったほうが良いのか、無い方が良いのかは議論の別れる所ですね。
| 元コラ | 2016/11/08 4:58 PM |
コメントする