Translate

2017年2月19日日曜日

Swift 3 勉強中、numbers.map{$0 * 2} とか、クロージャ?・・モダンな言語なの?記号ちっくな言語では?

夕食後もdisり手法でSwift勉強中です
クロージャ(ブロック)のあたりです

let numbers = [1,2,3,5,8,13,21]
let array1 = numbers.map{$0 * 2}

とかできちゃうけど、$0って、第一引数だとか..
何それ?何それ?
 
C言語ちっくをやめてモダンになるはずでは?
それなのに、変な省略形もあったもんですなー

私は下のような省略しない方がわかりやすいと思うだ

let array1 = numbers.map){(val:Int) -> Int in
     return val * 2
})

おぼえりゃ読めるようになるだろうけど。
覚えるためにdisりブログってるわけですだ
 


 

Swift 3 勉強中、defer文もなかなか癖がありますなー

defer文
ブロックを抜ける時に動く処理を書いておくもののようです
 
しかし、書くとどの順番で動くのか直感的ではない・・
deferは下から動く仕様らしいので
書きようによっては下から上に処理かけちゃうよ・・
 ノイマン先生げきおこ?


あと、deferはreturn文より上に書いておかない機能しないようですな。下の例では、3の時挨拶しないで終わっちゃってますよ・・アララ
 




Swift 3 勉強中 関数でいち抜けたするのに、gurad-else文で書かねばなんねの?

今日は関数など勉強中
関数途中抜けするのに guard - else文ってのがあるようだけど、これはifの反対条件でRubyで言ったらunless文なんですかね?どう言う意味で使うんだろう?
「守れないので抜けたー」みたいな戦前逃亡??





別にif文で良くないですかね〜
エラーもワーニングも出ないようですし。

決めなら決めにするし、半端なら無駄に拡張するのやめろー
なんかSwiftってまだブレてるでしょ。
(個人的意見です)




2017年2月18日土曜日

Unity まゆ?Trail Rendererで繭のようなものを描いただけ


Swiftで頭が疲れたのでUnityでちょっと発散w
繭?鞠?針金?

なんだろう?
ふと思ってやってみただけです


-処理-
中心点からほどほどに離れた点にTrail RendererをつけてRandom.rotationで、回転位置を変更してぶん回すのを繰り返しただけです


注意:色つけたら、見てはいけないモノが現れたので、白にしました(怖)



Swift 3 勉強中、Swiftのswitch文って強力だねー、なんでも出来過ぎじゃないか!?

Swiftのswitch文って結構複雑なことできちゃうんですね!

タプルを使って複数の値を同時判断しつつ、
レンジ演算子で範囲特定できちゃったり・・


 バリューバインディングとwhereでcaseの中で条件式をかけちゃうなんて・・



 あっ、これだけだとswitch文でやる意味ないか・・

 今までswitch文って、1変数の固定値判定にしか使えないのが普通だと思っていたもので・・唖然  しかし、なんでもできて素晴らしいけど、他の言語への移植性悪くないですかねー

Swift 3 勉強中、if文で複数の条件式をカンマ区切りで使えるって、C言語みたいだね

Swift 3のif文でも、複数の条件式をカンマ区切りで使えるんですねー、なぜかここはC言語引き継いだまま?
条件多い時 && 使うとごちゃごちゃするから
これはいいね!

if a > 10, b < 90, c > 50 {
   print("条件クリアー")
}

これできるのC言語直系だよね、C#とかJavascript,JavaもRubyもできないよね(たしか)。

まあ、使っていきましょう。
 
  

Swift 3 勉強中、インクリメント、デクリメントが無くなっただと!しかし、アセンブラ見たら・・

インクリメント、デクリメントが無くなっただと!
書き間違いがどうとか、cぽいforが無くなったから良いとか、そんなことじゃない!
インクメントやデクリメントは、プロセッサ命令だろー、使わないと遅くなるべ!
って思って調べた。

とりあえずこんなコードを書く

でアセンブラに落ちたコードを見る!

a += 2 の時
a += 1の時
a -= 1の時

なんだ、ちゃんとやってるじゃないか!
8086どノーマル時代からアセンブラ見てないので、たぶんでしかわからないけど、ちゃんと+1、-1の時はインクリメント命令、デクリメント命令使っているようで、Swift3素晴らしかった。

どうしても速く動くコードにしなきゃ脳が心配しちゃうんだよって話でした。
こんなのに詰まっていると勉強進まない・・