Swiftの関数の引数のアンダーバー。 [プログラミング]
Swiftをやる時にいつも忘れているんだけど、わりとすぐに思い出せないので書いておく。
Swiftの関数で引数のところにアンダーバーが出てくるのが気になる。
例えば上のだと関数のところにsenderという引数があって、その型はNSDraggingInfoだということだけども、アンダーバーはなんだということになる。
答えはObjective-Cにあって、メソッドの引数に名前をつける習慣があって、C言語みたいに関数でやっている分には引数の順番で判別するのだが、クラスの中のメソッドの引数はキーバリューみたいに一揃えにしていかなければならない。だからそれを省略して書く時にアンダーバーが必要になってくる。
Objective-CのCocoaに対応するためにSwiftでも引数が順番だけじゃなくて名前で判別する仕組みを取っているというわけだ。引数が一つだけだとかは面倒だから省略するのが普通なわけだが、なんかいちいち省略しますよと宣言するというのが気持ち悪いがしょうがない。
なんでこんな事を毎回やっているのかというと、この事実を明示的に書いているところがあまりないからだ。Swiftをやっている人は大体Objective-Cのことを知っているし、僕みたいにいきなり思い立ってやり直すという人が少ないというのもあると思う。そもそも_で検索しても情報がなかなか出てこないしね。文法とかはやっぱり本とかがあったほうがいいに越したことはない。Swiftは一冊買ってあるからいいとして、Golangって持ってないんだよな。
これあたり欲しい。翻訳本で高いがな。
Swift本はこれを持っている。簡単すぎないから大体のことはよく読めば載っている。あまり親切とは言えないが、少なくともググってすぐ出てくる情報ばかりではない。
それにしてもguard文は必ずしも必要な感じはしないなぁ。便利は便利だけれど、他の言語であまり見慣れないものを見ると一瞬ムムムと感じてしまう。まぁ書いてあることを読める程度にはなっているけれども…。Swiftはコンパイラで検知できるバグは文法的に取っていく方針にあるみたいなので、ある程度書き方を強制されるところはあるかも。
Swiftの関数で引数のところにアンダーバーが出てくるのが気になる。
override func draggingExited(_ sender: NSDraggingInfo?) {
例えば上のだと関数のところにsenderという引数があって、その型はNSDraggingInfoだということだけども、アンダーバーはなんだということになる。
答えはObjective-Cにあって、メソッドの引数に名前をつける習慣があって、C言語みたいに関数でやっている分には引数の順番で判別するのだが、クラスの中のメソッドの引数はキーバリューみたいに一揃えにしていかなければならない。だからそれを省略して書く時にアンダーバーが必要になってくる。
Objective-CのCocoaに対応するためにSwiftでも引数が順番だけじゃなくて名前で判別する仕組みを取っているというわけだ。引数が一つだけだとかは面倒だから省略するのが普通なわけだが、なんかいちいち省略しますよと宣言するというのが気持ち悪いがしょうがない。
なんでこんな事を毎回やっているのかというと、この事実を明示的に書いているところがあまりないからだ。Swiftをやっている人は大体Objective-Cのことを知っているし、僕みたいにいきなり思い立ってやり直すという人が少ないというのもあると思う。そもそも_で検索しても情報がなかなか出てこないしね。文法とかはやっぱり本とかがあったほうがいいに越したことはない。Swiftは一冊買ってあるからいいとして、Golangって持ってないんだよな。
これあたり欲しい。翻訳本で高いがな。
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- 作者: Alan A.A. Donovan
- 出版社/メーカー: 丸善出版
- 発売日: 2016/06/20
- メディア: 単行本(ソフトカバー)
Swift本はこれを持っている。簡単すぎないから大体のことはよく読めば載っている。あまり親切とは言えないが、少なくともググってすぐ出てくる情報ばかりではない。
[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
- 作者: 石川 洋資
- 出版社/メーカー: 技術評論社
- 発売日: 2018/01/17
- メディア: 単行本(ソフトカバー)
[改訂新版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus
- 出版社/メーカー: 技術評論社
- 発売日: 2018/11/14
- メディア: Kindle版
それにしてもguard文は必ずしも必要な感じはしないなぁ。便利は便利だけれど、他の言語であまり見慣れないものを見ると一瞬ムムムと感じてしまう。まぁ書いてあることを読める程度にはなっているけれども…。Swiftはコンパイラで検知できるバグは文法的に取っていく方針にあるみたいなので、ある程度書き方を強制されるところはあるかも。
タグ:SWIFT
Twitterまとめ投稿 2019/09/19 [Twitter]
carbonhydratRT @io302: 産婦人科の看護師と小泉進次郎入閣の話題に 看護師『進次郎さん、カッコイイし、滝川クリステルの旦那だし』 オイラ『え?政治家としての実績は?』 看護師『知らないけど、発言がカッコイイ』 オイラ『妊婦加算白紙に戻せって言ったのに?』 看護師『え?』 オイラ『…09/18 07:40 carbonhydrat『なんかWindowsノートが欲しくなってきたなぁ。』名前を変えようと思ったがいい案がなかった..|https://t.co/v3ziFRHusW09/18 09:07 carbonhydrat中高生はSNSで友だちになり、顔写真を送る https://t.co/Y4NOwWeWPX デジタルネイティブはすごくゆるいのう。便利に使ってるけど、弊害をあんまり考えないのは昔の若者と同じか。大人が言ってやらんとわかんない事もあると思う。放任は危ないよな09/18 17:27 carbonhydrat話題沸騰の『ドラゴンクエスト』の位置情報ゲーム。その内容とは?【レビュー:ドラゴンクエストウォーク】 https://t.co/ULTo0s9EBO @denfaminicogame 本気で遊べるようにしたゲームっぽい。今までの失… https://t.co/YWjBmSs4ou09/18 18:38 carbonhydratタモリが一般人に「頑張ってください」と声をかけてほしくないワケ https://t.co/6I9qoqWdvP キレ方がタモリらしいw09/18 18:49 carbonhydrat漫画『彼方のアストラ』“SF論争”、作者が言及 批判に理解も「正しさの視点が違うということ」 https://t.co/LaIbwh6xmr まぁ篠原さんの言う通りだよな。だけどSFとしてとか言いたいのは分かるけど、所詮エンタメな… https://t.co/EJYBdHQgOM09/18 19:00 carbonhydrat@1098marimo @miraihack これって単純に高齢出産でトリソミーとかが増えるってことの言い換えに過ぎない気がするんですが09/18 20:29 carbonhydratRT @ockeghem: 今年になってから発表されたECサイトからのカード情報漏洩事件の一覧表です。多いですね https://t.co/FRtYIOXzV909/18 20:32 carbonhydratRT @satoru_takeuchi: 3大この業界で内情を知らなくても無条件で叩いてもいいと思われがちなもの - SIer - COBOL - Oracle (しばらく前はMicrosoftなんかも) 知ってた上で批判するならまだしも何も知らずに悪口だけ言うのはちょっ…09/18 20:35 carbonhydrat2ちゃんで語る事なんてこの程度のことが9割だったんだよな(過去形)。5ちゃんってなに? https://t.co/XtP7e4XsCZ09/18 20:38 carbonhydratRT @nojiri_h: 「SFは死んだ」の震源地を調べてみたら、『彼方のアストラ』ってアニメの批評だった。Amazonのプライムビデオで無料視聴できるのでエピソード7まで一気に見てしまったよ。めっちゃ面白いやん。死んだどころか、良質のジュブナイルSFが生まれてた。https…09/18 20:43
2019-09-19 05:01
コメント(0)