Swift part10 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/02/20(月) 10:00:13.40ID:ChbPWtRt0
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift Part4
http://potato.2ch.net/test/read.cgi/mac/1484763495/

[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
http://potato.2ch.net/test/read.cgi/mac/1484217623/

Xcode part14
http://potato.2ch.net/test/read.cgi/mac/1476190499/

Swiftアンチスレ part1
http://echo.2ch.net/test/read.cgi/tech/1458491343/

前スレ
Swift part9
http://echo.2ch.net/test/read.cgi/tech/1476758084/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
403デフォルトの名無しさん (ワッチョイ bff3-QkHB)
垢版 |
2017/04/24(月) 10:00:22.08ID:Et0GUfRD0
>>402
詳しく!
404デフォルトの名無しさん (ワッチョイ bff3-QkHB)
垢版 |
2017/04/24(月) 10:02:56.87ID:Et0GUfRD0
Obj-C開発コミュニティーは崩壊しており、いまさらObj-Cのupgradeは難しいって事でしょうか?

だから、Swiftの開発が始まったって事でしょうか?

Obj-Cってコンパイル早くていい感じ何ですけど。Xcodeもサクサク動くし。

SwiftのせいでMacbook Pro15買わなくなっちゃいましたヨォ。俺は!
2017/04/24(月) 10:15:52.44ID:PIzQilqTd
買ったのならもういいじゃん
406デフォルトの名無しさん (スプッッ Sd4a-skpP)
垢版 |
2017/04/24(月) 11:07:05.55ID:mLc1nANzd
>>403
Objective-Cの考え方は、ドキュメンテーションコード。
だから、名前を短くするのはナンセンス。
407デフォルトの名無しさん (スプッッ Sd4a-a9+m)
垢版 |
2017/04/24(月) 12:02:48.74ID:SvpXvUmYd
>>399
書くのがめんどくさいってのはある
2017/04/24(月) 21:16:37.16ID:P6Dtc6ePd
単純に文の長さが短いだけで読みにくいのは高級言語としては微妙だな
409デフォルトの名無しさん (ワッチョイ 8ad4-a9+m)
垢版 |
2017/04/24(月) 22:06:57.16ID:hcHY62kZ0
「!」は最初見たときは分かりづらいと思ったが、慣れると危険な部分が分かりやすくて良いなと思ってる
2017/04/24(月) 22:16:59.71ID:o8gY9V3aa
!?
2017/04/25(火) 08:29:23.45ID:O6rTDgi/0
プログラミング初心者なんですが、 delegateの概念がよく分かりません。

プロトコルは実装しないといけないメソッドとかをまとめるもの?という認識ですが。

開発チュートリアルやってると、なんの説明も無しにいきなりdelegateは何とかを他のクラスに委任できるなんちゃらとか、

説明が意味不明過ぎて詰みました

だれかわかりやすく説明できる方いますか?
わかりやすいサイトでもいいです
英語サイトやYouTubeでもいいです
412デフォルトの名無しさん (スプッッ Sd33-a9+m)
垢版 |
2017/04/25(火) 08:33:44.54ID:DixYtrACd
>>411
スレチ
413デフォルトの名無しさん (ワッチョイ bff3-QkHB)
垢版 |
2017/04/25(火) 08:43:07.85ID:uqhlwSBc0
>>411
スレチ、とかってのは無視してOKっすからね。
あとdelegateパターン、delegateメソッド、delegate変数って言葉を使える様に
ならないとね。

delegateの概念ってのは、「クラスに委任」とかっていうのは単なる辞書を引いた
だけの説明なのでこれも無視です。

delegateパターンってのは2つのクラス、1つのプロトコルを使ったパターンです。
あまりにも、当たり前に使われるので、説明無しにdelegateパターンって出てきます。

この記事が参考になるんちゃいまっしゃろか?
UIKit類似Frameworkを自作してみる
http://qiita.com/externvoid@github/items/c70ce09aea758a548b22
2017/04/25(火) 09:52:21.41ID:o+aECIKxa
デリゲートってのはなぁ・・おっと、後は>>145頼む
2017/04/25(火) 09:58:28.39ID:o+aECIKxa
あぁ、デリゲート先間違えた。>>416頼む
416デフォルトの名無しさん (スプッッ Sd33-a9+m)
垢版 |
2017/04/25(火) 10:39:09.75ID:DixYtrACd
>>413
スレチはスレチ
swiftに関係ないし初心者質問スレでもないので質問者の想定レベルが不明
しかも>>413はdelegateの説明をしていない

あと紹介するなら、こっちじゃないの?
http://qiita.com/mochizukikotaro/items/a5bc60d92aa2d6fe52ca

iOSに限定したdelegateへの質問なら、こっちの方が答えがあると思う
[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
http://egg.2ch.net/test/read.cgi/mac/1484217623/
2017/04/25(火) 10:58:46.24ID:3wBLGJN/0
片側Rangeが通った
a[..<i] とか a[...i] とか a[i...] ってデフォで書ける
2017/04/25(火) 11:06:07.97ID:3fSgT78Np
今までデフォじゃなければ書けたの?
ユーザが拡張可能なコンパイラプラグインIFってswiftにあったっけかな
419デフォルトの名無しさん (スプッッ Sd33-a9+m)
垢版 |
2017/04/25(火) 11:23:22.00ID:DixYtrACd
a.prefix(i) // a[..<i]
a.dropFirst(i) // a[i..]
と、手で書き換えるとか?
420デフォルトの名無しさん (スップ Sdaa-skpP)
垢版 |
2017/04/25(火) 12:09:00.58ID:uC0QdnUhd
>>417
gj!
nice「とか」!
2017/04/25(火) 12:18:09.30ID:3wBLGJN/0
prefix operator ..<
prefix operator ...
postfix operator ...
を定義するだけ

SE-172のDetailed design真似して3.1で書いてみた
http://swift.sandbox.bluemix.net/#/repl/58febd1c8ef5d90dc580fb9b

まだSE-148のジェネリックなsubscriptがないから、ちょっとコードの重複ができてしまった
422デフォルトの名無しさん (ワッチョイ bff3-QkHB)
垢版 |
2017/04/25(火) 12:45:51.70ID:uqhlwSBc0
>>421
動いた。
こんなのチャチャッっと書けるなんて、すごいねぇ。
2017/04/25(火) 13:29:21.36ID:3fSgT78Np
あー、オペレーションのオーバーロードか
オーバーロードしてまで使いたいとは思わないけどpythonの同類文法が使えるようになるのは幸せ

>>419-420
とか定期(俺が日本語不自由
2017/04/25(火) 18:50:45.06ID:8UEDmHts0
>>411
https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/Delegation.html
http://best-practice-software-engineering.ifs.tuwien.ac.at/patterns/delegation.html#Structure
https://code.tutsplus.com/articles/design-patterns-delegation--cms-23901

Delegateはデリゲーションパターンにおいて処理を委譲されるクラスの役割名
「委譲する」という意味の動詞としても使われる

プロトコルは他言語で言うインターフェース

DelegationはCocoaでフレームワークから開発者の書いたコードを呼び出す場合によく使われるパターン
例えばTableViewの行を選択した時に何か独自の動作を行いたいなら
UITableViewDelegateに定義されている特定のメソッドを実装してDelegateとして設定しておくと
ユーザーが行を選択した時にDelegateとして設定したクラスの該当メソッドが呼び出されて開発者が書いたコードが実行される

UITableViewDelegateがプロトコルでそのプロトコルを実装したクラスがDelegate
プロトコルとの関係がわかりにくければUITableViewDelegateProtocolという名前を省略してると考えてるといいかも
425デフォルトの名無しさん (スップ Sdaa-skpP)
垢版 |
2017/04/25(火) 20:11:15.65ID:uC0QdnUhd
でもAppleはblockを奨めているから
今時delegateじゃないよね
まあ知っておいた方が良いかな程度?
2017/04/25(火) 20:23:32.46ID:8UEDmHts0
blockと何の関係があるの?
2017/04/25(火) 20:30:05.59ID:wOaxuRz+0
>>424
thx

2番目のURL記載のMultiple Inheritanceを避けて
Single Inheritance with Delegationってのが判りやすっすね。

CにはAの機能とBの機能が欲しい。じゃぁ、CはA, B2つのクラスを継承させれば良いか?というとそうでは無い。

CはAを継承しつつ、Bをメンバに持てば良い。
2017/04/25(火) 20:59:50.91ID:wOaxuRz+0
is-a関係、part-of関係がはっきり決まるオブジェクト間の関係ばかりでは無い。

例:
- 正常運転 is-a 運転、復旧運転 is-a 運転
- 正常運転 part-of 運転、復旧運転 part-of 運転

同じ概念間にis-a関係、part-of関係の両方が同時に成立する事は
ありえず、どこか間違っている。

is-a関係:Interitance
part-of関係:delegateパターン
両者を上手く使い分けるのが吉!
2017/04/26(水) 01:11:59.43ID:zySdwBLY0
inheritanceかな
2017/04/26(水) 08:47:49.85ID:0yNg6j//p
>>426
スレチだけどURLConnection(非推奨)とURLSession(推奨)見比べろ
2017/04/26(水) 11:01:47.26ID:8tL6gyso0
>>425
>>430
クラスやメソッドの役割によるもので単にBlock推奨、delegateが古いという話ではない
NSURLSessionのヘッダ見りゃ分かるけどSessionとTaskの関連メソッドではdelegateでの定義の方が多い
2017/04/26(水) 11:05:31.83ID:GvwT/G3X0
数で比較するんじゃなくて、どっちをユーザに使わせようとしてるかを比較するんだよ?
UIAlertController(推奨)とUIAlertView(非推奨)みたいなのもあるな
2017/04/26(水) 11:25:04.64ID:8tL6gyso0
すまん、数を持ち出したのは間違いだったが物事を単純に考えてる奴には目で見て分かりやすいと思ったので
新しいAPIでもcompletionHandlerもあればdelegateもあるし適材適所って事
2017/04/26(水) 11:38:07.27ID:GvwT/G3X0
適材適所であることに異論はないが、今までdelegateだったものがblockに移行してる事実はあるよね
>>426の「何の関係があるの?」の疑問は解決したかな

同じようにObjCだったものがSwiftに移行・・・はして失敗してるんだよなぁ
Swiftに移行したけど破壊変更が頻繁でメンテナンス性が悪いからObjCに差し戻そうって意見が割とガチで出て辛い
2017/04/26(水) 14:54:49.58ID:rNMObgtm0
>>430
なるほど>>425が言いたいことは理解したわ

Delegateをコールバックを実現する仕組みの一つとして捉えると
わざわざDelegateを定義しなくてもcompletionHandlerみたいなblockパラメータって十分ってことかな
シンプルなケースはそれでいいけど少し複雑になるとDelegate使ったほうが良いケースもあるし使い分けだよね

自分で新しく作るんじゃなくUITableViewDelegateみたいなフレームワークで用意されたプロトコルを使う場合は
コールバックを実現する仕組みというより事前に用意された拡張ポイントを使う方法として捉えてる
その場合サブクラス化、デリゲート、イベントなんかは同じグループとして捉えてるけどBlockは抽象度違うからグループの外だね
436デフォルトの名無しさん (ワッチョイ bff3-QkHB)
垢版 |
2017/04/26(水) 15:04:57.22ID:3mj2KO3W0
SwiftのprotocolはJavaのinterfaceみたいなもんだと説明されるけど、Javaでoptionalメソッドを定義できるの?
2017/04/26(水) 15:08:18.39ID:gZc0mpUPa
>>436
スレチもいいとこ
2017/04/26(水) 15:17:06.14ID:rNMObgtm0
>>436
何もしないデフォルト実装を用意する
439デフォルトの名無しさん (ワッチョイ bff3-QkHB)
垢版 |
2017/04/26(水) 15:54:00.63ID:3mj2KO3W0
>>438
なるほどぉ。
2017/04/26(水) 19:42:58.31ID:7DECPBe+d
funcって書くのにメソッドなの??
2017/04/26(水) 19:59:41.32ID:lYhaqZk40
そもそもfuncとmethodを分ける意味ってあんの?
会話で通じないとかなくね?
2017/04/26(水) 20:56:10.25ID:2ExUo8Ujp
Fuck!!!
443デフォルトの名無しさん (スッップ Sdaa-skpP)
垢版 |
2017/04/26(水) 21:12:05.58ID:7OfAzagzd
関数の事をmethodって言う奴は「解ってないなあ」と思う。

あと、宣言と定義の使い分けできていない人も苦手だな。
2017/04/26(水) 21:14:41.12ID:yg9vhXXld
伝わればなんでもいいよ
2017/04/26(水) 21:15:15.06ID:lYhaqZk40
ヘッダーがなくなった時点で、宣言も定義もほぼ同義じゃねーの
2017/04/26(水) 21:43:02.76ID:ZkZBCOOl0
Swiftでは公式に用語がどう定義されてんだろうと思って探したら丁度ズバリ書いてた

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-ID351

In Swift, most declarations are also definitions in the sense that they
are implemented or initialized at the same time they are declared.
That said, because protocols don’t implement their members, most
protocol members are declarations only.
For convenience and because the distinction isn’t that important in
Swift, the term declaration covers both declarations and definitions.

Swiftではプロトコルとか一部除いてほぼ宣言と同時に定義するし、いちいち区別するのメンドクセーから「宣言」も「定義」もひっくるめて「宣言」って用語だけ使うわー

まぁそれもBNFだけでの話のようで、Guideの他の部分の文章では「definition」も使われたり混同されたりしてるようだけど
2017/04/26(水) 22:01:01.52ID:H5XmXuTS0
>>443
うっそーん?

instance method, type methodっていう言い方はするが、
instance function, type function(class function)なんて聞いたこと
ないぞぉ。
2017/04/27(木) 02:46:48.47ID:v69LNgpd0
>>443>>447みたいなことを口に出す人は若いなぁと思う
自分も若かりし頃は気にしてたけど年取ったら思ってても意図が伝わればどうでもいいわとなった
どうせswiftコード上だとfuncが共通で使われるし、小面倒な奴と会話するときは「ファンク」とでも言っとけばおk
2017/04/27(木) 08:03:13.29ID:T2cThVGm0
いやだからなんでfuncって書くのにメソッドやねん
だったらmethにでもしとけばええやん
2017/04/27(木) 08:35:20.62ID:7p4DwLyja
グローバルな関数とメソッドでfuncとmethを書き分けろっての?
ただの関数にmethとか使うのは抵抗あるわ
メソッドにfunc使うのは他の言語の例もあるので違和感ないけど
2017/04/27(木) 09:04:29.23ID:N3r3uYtra
そもそもメソッドというのはSmalltalkのコミュニティが使い始めた用語で
もともともはメッセージを受け取ったオブジェクトが目指すゴールを記述するための新しい言語要素を想定してたんだよね

だけど、けっきょくそのSmalltalkも-76以降はSimula67(ALGOLの拡張)スタイルの普通の関数に落ち着いたし
その後ブームとなったJavaもそのまま用語を採用した経緯もあって
メソッドと関数っていうのはインスタンスとオブジェクトみたいなもので区別はあまり意味をもたなくなっちゃっている

強いて言えば、クラスに属する(言語によってはプラスして暗黙のselfを受け取れる)関数をメソッドと呼ぶとかゆるいくくり
2017/04/27(木) 09:05:58.12ID:OI3ixlBfF
funcyな言語やで
453デフォルトの名無しさん (ワッチョイ 0bf3-czGs)
垢版 |
2017/04/27(木) 10:36:56.84ID:OuTFIb+i0
>>451
それも、うっそーん!
Smalltalkではmethodをmessageっていうゾォ。
2017/04/27(木) 11:23:38.37ID:N3r3uYtra
>>453
ああ、それはSmalltalkの(というかOOPの)メッセージングというコンセプトをよくわかっていない人がやりがちな間違いで
メッセージと、それを送ることでコールされるメソッド(関数)は別物

たとえばメッセージ(仮にmとしよう)を送ってもmとは関係ないメソッドがコールされることもあるし
極端な話、何もしないという選択肢(振る舞い)もありうる

もっとも多くの場合、メッセージ(厳密にはメッセージを構成するセレクタ)とメソッド名は一致させるのが普通なので
混同するのも無理からぬことだけれども
2017/04/27(木) 11:49:48.89ID:7p4DwLyja
Obj-Cの場合はメッセージ=メソッド的なとこあるけど、Smalltalkは違うんかね
2017/04/27(木) 12:55:56.69ID:N3r3uYtra
>>455
んー、Obj-Cのコミュニティ(Appleの公式文書も含め)が勘違いを広めているってよくない傾向はあるけど
Obj-CもSmalltalkもメッセージングの根本の考え方は変わらない

そもそもObj-CはSmalltalkのやっていることをCのプリプロセッサでやろうとした試みからスタートしたので変えたら意味ないし
ちなみにそのときの文法はまだメッセージ式ではなかったから純粋にコンセプトだけをなぞろうとしたことがわかる
http://dl.acm.org/citation.cfm?id=948095 (残念ながら有償)

mySodaMachine = {| SodaMachine, "comb:model:", 23, 4 |};
2017/04/27(木) 14:07:08.57ID:Wv+Yc+Vq0
Methods are functions that are associated with a particular type
以上。
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html
2017/04/27(木) 14:47:27.97ID:52wV30cHp
以上って言っても、small talkやobjcについてスレチ上等で会話してる奴等には通じない、、、

大元の>>440だけ考えたら、コード上でfunc, methの書き分けなんて面倒っていう
コンパイラ側とコーダー側の双方メリットによるものだろうよ
459デフォルトの名無しさん (ワッチョイ 5b3c-C6JC)
垢版 |
2017/04/27(木) 15:27:43.95ID:573QYR970
戻り値が void の function なんてのは C で初めて見た。
例えば BASIC や Pascal では戻り値が無いのは procedure で 戻り値があるのが function だ。

method はやり方とか手順とかいう意味で routine や procedure と同じような意味合いだ。

function というからには副作用が無い(引数以外が戻り値に影響しない)ことを期待したいところだが、「機能」という意味合いに着目すると、これらの中で最も曖昧であって、一つで済ませるなら便利かもね。
460デフォルトの名無しさん (JP 0H9f-PkLO)
垢版 |
2017/04/27(木) 16:23:53.95ID:a+4IBLmkH
Cのvoidはアキュムレータの値を還すよ
2017/04/27(木) 16:43:42.91ID:QxU5eB0Ka
そんなもの返されたところで使い道は無ぇ
2017/04/27(木) 16:48:34.82ID:R6dFUrFW0
るーびーですねわかります
2017/04/27(木) 19:19:04.75ID:5OLYtE1F0
>>460
それは返すとは言いません
2017/04/27(木) 21:03:25.93ID:8BI3unQLd
>>458
つまり全部関数って呼べばいいんじゃないの
わざわざメソッドとか言わずに
2017/04/27(木) 21:31:33.44ID:i5BzzK+e0
>>464
普通の人はそれで良いと思う
頭固い偏屈な奴だけメソッドって言い張れば良いんじゃないかなぁ
と自分は思います
2017/04/27(木) 22:14:36.28ID:52wV30cHp
教祖様がコード上はfuncをキーワードにするけど、>>457の通り人間向けはmethodがいいって言ってる
ケースバイケースで言い換えたい所存、信仰したくない宗教だけど敬意は払う

信者はsmall talk原理主義やobjc至上主義で討論してるけど結論出ないだろ
2017/04/27(木) 23:12:26.96ID:Wv+Yc+Vq0
>>464
メソッドって呼んだ場合は単なる関数じゃなく
クラスや構造体なんかの特定の型に紐付いた関数だっていう意味が付随するの
それが不要だと思うなら全部関数って呼べばいいと思うよ

メソッドに限らずクロージャなんて呼ばずに全部関数って呼んでもいいし
逆に関数なんて呼ばずに全部クロージャって呼んでもいい
2017/04/27(木) 23:16:43.40ID:Wv+Yc+Vq0
>>458
クラスや構造体の中で定義した関数のことをメソッドと呼ぶんだからfuncキーワードを使うのが適切だろ
コンパイラ側とかコーダー側とか関係ない
2017/04/27(木) 23:28:54.98ID:8BI3unQLd
>>467
じゃあなんでfuncとかいうキーワードなのって思うよね
つーか、キーワードなんかいらなくね?って思うんだが
そのキーワードがないとコンパイラが解釈できないシンタックスなのかな
2017/04/27(木) 23:37:34.54ID:+McxYUoga
キーワードないと宣言なのか呼び出しなのかコンパイラも判断に迷うだろ
2017/04/28(金) 00:05:28.20ID:uTZO7qUH0
>>469
もしmethodってキーワード使うとしたら、>>457の定義に従えば

メソッド = 型に関連付けられた関数
func = 関数
class { func } = 型に関連付けられた関数
         = メソッド
class { method } = 型に関連付けられたメソッド
           = 型に関連付けられた(型に関連付けられた関数)

ってことになって「頭痛が痛い」みたいにならね?w
2017/04/28(金) 04:06:13.32ID:TMPExC9ya
arc4random()をIntに入れるのに完璧なやり方ってある?
2017/04/28(金) 05:07:09.24ID:dZlKtiRpd
>>470
Cはそんなfuncとかいうキーワードないのに成り立ってて不思議だね
474デフォルトの名無しさん (スップ Sd7f-Ch68)
垢版 |
2017/04/28(金) 07:34:38.00ID:NEA7d0M1d
C言語の場合

プロトタイプ宣言
と言うように、宣言はメモリの確保を伴わない

関数定義
と言うように、定義はメモリの確保を伴う


オブジェクト指向の場合はどうなるんだろうね
コードは宣言でインスタンス化は定義かな
2017/04/28(金) 08:07:22.91ID:+uUUmIhK0
JavaとかObjective-Cでもfuncとかいうキーワードはないのに成り立ってるね
2017/04/28(金) 08:23:00.72ID:Z9SVt9YO0
他の新興言語のgoやrustはキーワードつけてるね

あってもなくても成り立たなくはないけど、ある方が流行りなんでしょ
他言語文法仕様をパクってモダンなものを作るんだから流行りに合わせてつけるのは当然でしょ
2017/04/28(金) 08:24:09.58ID:+uUUmIhK0
なるほどモダンねぇ...
2017/04/28(金) 08:25:01.60ID:uTZO7qUH0
型が後置だからだろ
2017/04/28(金) 08:59:20.10ID:1TnL0+oaF
>>478
それな
モダンな表現を実現するためには仕方ないな
2017/04/28(金) 09:15:26.74ID:HrVNNKWrp
いや、後置でもコンパイラが頑張ればできるでしょ
481デフォルトの名無しさん (スプッッ Sd1f-xKwp)
垢版 |
2017/04/28(金) 09:57:20.06ID:Ac9Dm7bId
明示しないとコンパイラだけじゃなく人間も頑張らなくちゃならなくなるかも
2017/04/28(金) 10:00:18.34ID:K29gCEJ0a
>>473
Cは変数も関数も型宣言(関数の場合は返り値の型)が先にくるからね
2017/04/28(金) 16:06:25.59ID:pTZXbcwl0
構文解析の問題だからメモリ確保云々は関係ないでしょ

funcキーワードを使わないとして
例えば foo() {…} と書いた場合にこれが関数定義なのか
Trailing Closureを付けて関数を実行しようとしてるのか{…}の中身を調べないと分からないし
未定義のものを実行しようとしてるのかどうかの判定も困難

キーワードがあることで構文解析・静的解析・型推論なんかで有利に働いて
言語としての表現力や安全性が高まる 特に表現力
funcじゃなくてletやvarを使ってもいい(Swift的にはこれらは関数とは呼ばないけど)

let foo = {print(“foo”)}
let bar = {() -> () in print(“bar”)}
let baz: () -> () = {…}
2017/04/28(金) 18:44:38.27ID:uTZO7qUH0
>>472
Intに入れるじゃ何聞きたいのか分からん

var result: Int = 0
arc4random_buf(&result, MemoryLayout.size(ofValue: result))

こういう話?
それとももっと別の話なのか
2017/04/28(金) 21:07:49.54ID:pTZXbcwl0
>>472
普通にIntでCastして不都合ある?
let random10 = { Int(arc4random_uniform(10)) }
486デフォルトの名無しさん (ワッチョイ 9f9d-w1TE)
垢版 |
2017/05/06(土) 16:47:48.74ID:3sfm3EzD0
『詳解Swift』ってどう?Amazonの評価は真っ二つに別れているんだけど
2017/05/06(土) 17:06:44.06ID:Vgrr/US10
>>486
どんな本も、読者によって評価は分かれる。
いい本とは、万人に受け入れられると考えるのは、間違い。
2017/05/06(土) 17:17:20.80ID:Du+O4KVHp
中上級者向けの本で内容を理解出来ないと悪いレビューつける奴いるしな
2017/05/06(土) 17:32:44.31ID:rU3gcFGYp
swift 3に対応した3版は出たのかねぇ
作者も読者も疲れてそうだと思った
2017/05/06(土) 17:49:37.89ID:l3lhsLeM0
>>486
Appleの公式本読めば十分だよ

日本語という以外の付加価値は全くないけど
公式本に近い内容を日本語で読みたければ買ってもいいと思う
一度読んだら辞書的な使い方はしないので電子版のほうがオススメ

あと荻原本は公式本よりやや説明がくどいので好き嫌い分かれる
目新しい概念をわかりやすく説明してくれてたりはしない
2017/05/06(土) 17:50:10.60ID:Vu96M1x5a
>>488
百田尚樹の本をサヨクが理解出来ないのと一緒だな
2017/05/06(土) 17:50:47.77ID:tXDjXsMUd
どうせSwiftの自己満仕様変更で古くなる参考書を何故買うかね?
493デフォルトの名無しさん (ワッチョイ 9f9d-w1TE)
垢版 |
2017/05/06(土) 19:55:06.44ID:3sfm3EzD0
古くなるのが嫌なら、IT系の本、特に入門書なんて全部買えないだろ。
それに図書館で買ってもらって読むって手もあるし。
2017/05/06(土) 20:50:30.20ID:Vgrr/US10
>>489
疲れたヤツも居れば、元気なヤツも居る。
C++11, C++14, C++17と立て続けに改定が進み、
疲れたヤツ、元気なヤツが居るのと同じ。
2017/05/06(土) 20:51:18.32ID:Vgrr/US10
>>491
素晴らしい比喩
2017/05/06(土) 20:52:39.76ID:Vgrr/US10
>>492
全ての仕様は、古くなる。
全ての物理常識は古くなる。
天動説だって古くなる。
だから、天動説を知らないで良いとはならんだろう。
2017/05/06(土) 20:54:11.98ID:A6Xoj7sWa
コンピュータの世界はどんどん新しくなるのが当たり前だろ。
言語は、その中でもまだ遅い方よ。
2017/05/06(土) 21:30:38.70ID:RxOQwEquH
ネットの情報は新旧混在ですぐデブリだらけになるからな
2017/05/06(土) 21:58:01.55ID:I53ls5gra
どんどん新しくなるといいながら、未だにフォン・ノイマン型が主流なんだよな
2017/05/06(土) 22:03:44.34ID:A6Xoj7sWa
分野による。
組み込みじゃハーバード型が主流。
2017/05/06(土) 22:12:19.08ID:I53ls5gra
ハーバード型もパラダイム的には大して変わんねーから
2017/05/06(土) 22:17:28.66ID:A6Xoj7sWa
データと命令で分かれてるのは地味に重要だぞ。
高速なCPUじゃ分かりにくいかもだが、低速になる程顕著。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況