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
探検
Swift part10 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 3b3c-eq+O)
2017/02/20(月) 10:00:13.40ID:ChbPWtRt0417デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
2017/04/25(火) 10:58:46.24ID:3wBLGJN/0 片側Rangeが通った
a[..<i] とか a[...i] とか a[i...] ってデフォで書ける
a[..<i] とか a[...i] とか a[i...] ってデフォで書ける
418デフォルトの名無しさん (ササクッテロラ Sp23-G776)
2017/04/25(火) 11:06:07.97ID:3fSgT78Np 今までデフォじゃなければ書けたの?
ユーザが拡張可能なコンパイラプラグインIFってswiftにあったっけかな
ユーザが拡張可能なコンパイラプラグインIFってswiftにあったっけかな
419デフォルトの名無しさん (スプッッ Sd33-a9+m)
2017/04/25(火) 11:23:22.00ID:DixYtrACd a.prefix(i) // a[..<i]
a.dropFirst(i) // a[i..]
と、手で書き換えるとか?
a.dropFirst(i) // a[i..]
と、手で書き換えるとか?
420デフォルトの名無しさん (スップ Sdaa-skpP)
2017/04/25(火) 12:09:00.58ID:uC0QdnUhd421デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
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がないから、ちょっとコードの重複ができてしまった
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:uqhlwSBc0423デフォルトの名無しさん (ササクッテロラ Sp23-G776)
2017/04/25(火) 13:29:21.36ID:3fSgT78Np424デフォルトの名無しさん (ワッチョイ 4a3c-TbnN)
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という名前を省略してると考えてるといいかも
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じゃないよね
まあ知っておいた方が良いかな程度?
今時delegateじゃないよね
まあ知っておいた方が良いかな程度?
426デフォルトの名無しさん (ワッチョイ 4a3c-TbnN)
2017/04/25(火) 20:23:32.46ID:8UEDmHts0 blockと何の関係があるの?
427デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
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をメンバに持てば良い。
thx
2番目のURL記載のMultiple Inheritanceを避けて
Single Inheritance with Delegationってのが判りやすっすね。
CにはAの機能とBの機能が欲しい。じゃぁ、CはA, B2つのクラスを継承させれば良いか?というとそうでは無い。
CはAを継承しつつ、Bをメンバに持てば良い。
428デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
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パターン
両者を上手く使い分けるのが吉!
例:
- 正常運転 is-a 運転、復旧運転 is-a 運転
- 正常運転 part-of 運転、復旧運転 part-of 運転
同じ概念間にis-a関係、part-of関係の両方が同時に成立する事は
ありえず、どこか間違っている。
is-a関係:Interitance
part-of関係:delegateパターン
両者を上手く使い分けるのが吉!
429デフォルトの名無しさん (ワッチョイ 270f-SXGp)
2017/04/26(水) 01:11:59.43ID:zySdwBLY0 inheritanceかな
430デフォルトの名無しさん (ササクッテロラ Sp23-G776)
2017/04/26(水) 08:47:49.85ID:0yNg6j//p >>426
スレチだけどURLConnection(非推奨)とURLSession(推奨)見比べろ
スレチだけどURLConnection(非推奨)とURLSession(推奨)見比べろ
431デフォルトの名無しさん (ワッチョイ 6372-Xafy)
2017/04/26(水) 11:01:47.26ID:8tL6gyso0432デフォルトの名無しさん (ワッチョイ ab05-MGa5)
2017/04/26(水) 11:05:31.83ID:GvwT/G3X0 数で比較するんじゃなくて、どっちをユーザに使わせようとしてるかを比較するんだよ?
UIAlertController(推奨)とUIAlertView(非推奨)みたいなのもあるな
UIAlertController(推奨)とUIAlertView(非推奨)みたいなのもあるな
433デフォルトの名無しさん (ワッチョイ 6372-Xafy)
2017/04/26(水) 11:25:04.64ID:8tL6gyso0 すまん、数を持ち出したのは間違いだったが物事を単純に考えてる奴には目で見て分かりやすいと思ったので
新しいAPIでもcompletionHandlerもあればdelegateもあるし適材適所って事
新しいAPIでもcompletionHandlerもあればdelegateもあるし適材適所って事
434デフォルトの名無しさん (ワッチョイ ab05-MGa5)
2017/04/26(水) 11:38:07.27ID:GvwT/G3X0 適材適所であることに異論はないが、今までdelegateだったものがblockに移行してる事実はあるよね
>>426の「何の関係があるの?」の疑問は解決したかな
同じようにObjCだったものがSwiftに移行・・・はして失敗してるんだよなぁ
Swiftに移行したけど破壊変更が頻繁でメンテナンス性が悪いからObjCに差し戻そうって意見が割とガチで出て辛い
>>426の「何の関係があるの?」の疑問は解決したかな
同じようにObjCだったものがSwiftに移行・・・はして失敗してるんだよなぁ
Swiftに移行したけど破壊変更が頻繁でメンテナンス性が悪いからObjCに差し戻そうって意見が割とガチで出て辛い
435デフォルトの名無しさん (ワッチョイ 4a3c-TbnN)
2017/04/26(水) 14:54:49.58ID:rNMObgtm0 >>430
なるほど>>425が言いたいことは理解したわ
Delegateをコールバックを実現する仕組みの一つとして捉えると
わざわざDelegateを定義しなくてもcompletionHandlerみたいなblockパラメータって十分ってことかな
シンプルなケースはそれでいいけど少し複雑になるとDelegate使ったほうが良いケースもあるし使い分けだよね
自分で新しく作るんじゃなくUITableViewDelegateみたいなフレームワークで用意されたプロトコルを使う場合は
コールバックを実現する仕組みというより事前に用意された拡張ポイントを使う方法として捉えてる
その場合サブクラス化、デリゲート、イベントなんかは同じグループとして捉えてるけどBlockは抽象度違うからグループの外だね
なるほど>>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メソッドを定義できるの?
437デフォルトの名無しさん (アウアウエー Sa82-p2Ky)
2017/04/26(水) 15:08:18.39ID:gZc0mpUPa >>436
スレチもいいとこ
スレチもいいとこ
438デフォルトの名無しさん (ワッチョイ 4a3c-TbnN)
2017/04/26(水) 15:17:06.14ID:rNMObgtm0 >>436
何もしないデフォルト実装を用意する
何もしないデフォルト実装を用意する
439デフォルトの名無しさん (ワッチョイ bff3-QkHB)
2017/04/26(水) 15:54:00.63ID:3mj2KO3W0 >>438
なるほどぉ。
なるほどぉ。
440デフォルトの名無しさん (スップ Sdaa-SXGp)
2017/04/26(水) 19:42:58.31ID:7DECPBe+d funcって書くのにメソッドなの??
441デフォルトの名無しさん (ワッチョイ 533c-p2Ky)
2017/04/26(水) 19:59:41.32ID:lYhaqZk40 そもそもfuncとmethodを分ける意味ってあんの?
会話で通じないとかなくね?
会話で通じないとかなくね?
442デフォルトの名無しさん (ササクッテロレ Sp23-p2Ky)
2017/04/26(水) 20:56:10.25ID:2ExUo8Ujp Fuck!!!
443デフォルトの名無しさん (スッップ Sdaa-skpP)
2017/04/26(水) 21:12:05.58ID:7OfAzagzd 関数の事をmethodって言う奴は「解ってないなあ」と思う。
あと、宣言と定義の使い分けできていない人も苦手だな。
あと、宣言と定義の使い分けできていない人も苦手だな。
444デフォルトの名無しさん (スップ Sd4a-mqxQ)
2017/04/26(水) 21:14:41.12ID:yg9vhXXld 伝わればなんでもいいよ
445デフォルトの名無しさん (ワッチョイ 533c-p2Ky)
2017/04/26(水) 21:15:15.06ID:lYhaqZk40 ヘッダーがなくなった時点で、宣言も定義もほぼ同義じゃねーの
446デフォルトの名無しさん (ワッチョイ 4af3-p2Ky)
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」も使われたり混同されたりしてるようだけど
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」も使われたり混同されたりしてるようだけど
447デフォルトの名無しさん (ワッチョイ 7f54-2dAw)
2017/04/26(水) 22:01:01.52ID:H5XmXuTS0 >>443
うっそーん?
instance method, type methodっていう言い方はするが、
instance function, type function(class function)なんて聞いたこと
ないぞぉ。
うっそーん?
instance method, type methodっていう言い方はするが、
instance function, type function(class function)なんて聞いたこと
ないぞぉ。
448デフォルトの名無しさん (ワッチョイ 5b05-yA3i)
2017/04/27(木) 02:46:48.47ID:v69LNgpd0449デフォルトの名無しさん (ワッチョイ 6b0f-T1v3)
2017/04/27(木) 08:03:13.29ID:T2cThVGm0 いやだからなんでfuncって書くのにメソッドやねん
だったらmethにでもしとけばええやん
だったらmethにでもしとけばええやん
450デフォルトの名無しさん (アウアウエー Sa7f-L4LY)
2017/04/27(木) 08:35:20.62ID:7p4DwLyja グローバルな関数とメソッドでfuncとmethを書き分けろっての?
ただの関数にmethとか使うのは抵抗あるわ
メソッドにfunc使うのは他の言語の例もあるので違和感ないけど
ただの関数にmethとか使うのは抵抗あるわ
メソッドにfunc使うのは他の言語の例もあるので違和感ないけど
451デフォルトの名無しさん (アウアウエー Sa7f-cD9Q)
2017/04/27(木) 09:04:29.23ID:N3r3uYtra そもそもメソッドというのはSmalltalkのコミュニティが使い始めた用語で
もともともはメッセージを受け取ったオブジェクトが目指すゴールを記述するための新しい言語要素を想定してたんだよね
だけど、けっきょくそのSmalltalkも-76以降はSimula67(ALGOLの拡張)スタイルの普通の関数に落ち着いたし
その後ブームとなったJavaもそのまま用語を採用した経緯もあって
メソッドと関数っていうのはインスタンスとオブジェクトみたいなもので区別はあまり意味をもたなくなっちゃっている
強いて言えば、クラスに属する(言語によってはプラスして暗黙のselfを受け取れる)関数をメソッドと呼ぶとかゆるいくくり
もともともはメッセージを受け取ったオブジェクトが目指すゴールを記述するための新しい言語要素を想定してたんだよね
だけど、けっきょくそのSmalltalkも-76以降はSimula67(ALGOLの拡張)スタイルの普通の関数に落ち着いたし
その後ブームとなったJavaもそのまま用語を採用した経緯もあって
メソッドと関数っていうのはインスタンスとオブジェクトみたいなもので区別はあまり意味をもたなくなっちゃっている
強いて言えば、クラスに属する(言語によってはプラスして暗黙のselfを受け取れる)関数をメソッドと呼ぶとかゆるいくくり
452デフォルトの名無しさん (エムゾネ FF7f-T1v3)
2017/04/27(木) 09:05:58.12ID:OI3ixlBfF funcyな言語やで
453デフォルトの名無しさん (ワッチョイ 0bf3-czGs)
2017/04/27(木) 10:36:56.84ID:OuTFIb+i0454デフォルトの名無しさん (アウアウエー Sa7f-cD9Q)
2017/04/27(木) 11:23:38.37ID:N3r3uYtra >>453
ああ、それはSmalltalkの(というかOOPの)メッセージングというコンセプトをよくわかっていない人がやりがちな間違いで
メッセージと、それを送ることでコールされるメソッド(関数)は別物
たとえばメッセージ(仮にmとしよう)を送ってもmとは関係ないメソッドがコールされることもあるし
極端な話、何もしないという選択肢(振る舞い)もありうる
もっとも多くの場合、メッセージ(厳密にはメッセージを構成するセレクタ)とメソッド名は一致させるのが普通なので
混同するのも無理からぬことだけれども
ああ、それはSmalltalkの(というかOOPの)メッセージングというコンセプトをよくわかっていない人がやりがちな間違いで
メッセージと、それを送ることでコールされるメソッド(関数)は別物
たとえばメッセージ(仮にmとしよう)を送ってもmとは関係ないメソッドがコールされることもあるし
極端な話、何もしないという選択肢(振る舞い)もありうる
もっとも多くの場合、メッセージ(厳密にはメッセージを構成するセレクタ)とメソッド名は一致させるのが普通なので
混同するのも無理からぬことだけれども
455デフォルトの名無しさん (アウアウエー Sa7f-L4LY)
2017/04/27(木) 11:49:48.89ID:7p4DwLyja Obj-Cの場合はメッセージ=メソッド的なとこあるけど、Smalltalkは違うんかね
456デフォルトの名無しさん (アウアウエー Sa7f-cD9Q)
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 |};
んー、Obj-Cのコミュニティ(Appleの公式文書も含め)が勘違いを広めているってよくない傾向はあるけど
Obj-CもSmalltalkもメッセージングの根本の考え方は変わらない
そもそもObj-CはSmalltalkのやっていることをCのプリプロセッサでやろうとした試みからスタートしたので変えたら意味ないし
ちなみにそのときの文法はまだメッセージ式ではなかったから純粋にコンセプトだけをなぞろうとしたことがわかる
http://dl.acm.org/citation.cfm?id=948095 (残念ながら有償)
mySodaMachine = {| SodaMachine, "comb:model:", 23, 4 |};
457デフォルトの名無しさん (ワッチョイ 5f3c-0aF+)
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
以上。
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html
458デフォルトの名無しさん (ササクッテロラ Sp1f-eQq1)
2017/04/27(木) 14:47:27.97ID:52wV30cHp 以上って言っても、small talkやobjcについてスレチ上等で会話してる奴等には通じない、、、
大元の>>440だけ考えたら、コード上でfunc, methの書き分けなんて面倒っていう
コンパイラ側とコーダー側の双方メリットによるものだろうよ
大元の>>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 というからには副作用が無い(引数以外が戻り値に影響しない)ことを期待したいところだが、「機能」という意味合いに着目すると、これらの中で最も曖昧であって、一つで済ませるなら便利かもね。
例えば BASIC や Pascal では戻り値が無いのは procedure で 戻り値があるのが function だ。
method はやり方とか手順とかいう意味で routine や procedure と同じような意味合いだ。
function というからには副作用が無い(引数以外が戻り値に影響しない)ことを期待したいところだが、「機能」という意味合いに着目すると、これらの中で最も曖昧であって、一つで済ませるなら便利かもね。
460デフォルトの名無しさん (JP 0H9f-PkLO)
2017/04/27(木) 16:23:53.95ID:a+4IBLmkH Cのvoidはアキュムレータの値を還すよ
461デフォルトの名無しさん (アウアウエー Sa7f-L4LY)
2017/04/27(木) 16:43:42.91ID:QxU5eB0Ka そんなもの返されたところで使い道は無ぇ
462デフォルトの名無しさん (ワッチョイ 5bf3-nUWF)
2017/04/27(木) 16:48:34.82ID:R6dFUrFW0 るーびーですねわかります
463デフォルトの名無しさん (ワッチョイ 0f92-oOkd)
2017/04/27(木) 19:19:04.75ID:5OLYtE1F0 >>460
それは返すとは言いません
それは返すとは言いません
464デフォルトの名無しさん (スップ Sd7f-T1v3)
2017/04/27(木) 21:03:25.93ID:8BI3unQLd465デフォルトの名無しさん (ワッチョイ bb3c-L4LY)
2017/04/27(木) 21:31:33.44ID:i5BzzK+e0466デフォルトの名無しさん (ササクッテロラ Sp1f-eQq1)
2017/04/27(木) 22:14:36.28ID:52wV30cHp 教祖様がコード上はfuncをキーワードにするけど、>>457の通り人間向けはmethodがいいって言ってる
ケースバイケースで言い換えたい所存、信仰したくない宗教だけど敬意は払う
信者はsmall talk原理主義やobjc至上主義で討論してるけど結論出ないだろ
ケースバイケースで言い換えたい所存、信仰したくない宗教だけど敬意は払う
信者はsmall talk原理主義やobjc至上主義で討論してるけど結論出ないだろ
467デフォルトの名無しさん (ワッチョイ 5f3c-0aF+)
2017/04/27(木) 23:12:26.96ID:Wv+Yc+Vq0 >>464
メソッドって呼んだ場合は単なる関数じゃなく
クラスや構造体なんかの特定の型に紐付いた関数だっていう意味が付随するの
それが不要だと思うなら全部関数って呼べばいいと思うよ
メソッドに限らずクロージャなんて呼ばずに全部関数って呼んでもいいし
逆に関数なんて呼ばずに全部クロージャって呼んでもいい
メソッドって呼んだ場合は単なる関数じゃなく
クラスや構造体なんかの特定の型に紐付いた関数だっていう意味が付随するの
それが不要だと思うなら全部関数って呼べばいいと思うよ
メソッドに限らずクロージャなんて呼ばずに全部関数って呼んでもいいし
逆に関数なんて呼ばずに全部クロージャって呼んでもいい
468デフォルトの名無しさん (ワッチョイ 5f3c-0aF+)
2017/04/27(木) 23:16:43.40ID:Wv+Yc+Vq0469デフォルトの名無しさん (スップ Sd7f-T1v3)
2017/04/27(木) 23:28:54.98ID:8BI3unQLd470デフォルトの名無しさん (アウアウエー Sa7f-L4LY)
2017/04/27(木) 23:37:34.54ID:+McxYUoga キーワードないと宣言なのか呼び出しなのかコンパイラも判断に迷うだろ
471デフォルトの名無しさん (ワッチョイ 5ff3-L4LY)
2017/04/28(金) 00:05:28.20ID:uTZO7qUH0472デフォルトの名無しさん (アウアウウー Sa9f-L4LY)
2017/04/28(金) 04:06:13.32ID:TMPExC9ya arc4random()をIntに入れるのに完璧なやり方ってある?
473デフォルトの名無しさん (スップ Sd7f-T1v3)
2017/04/28(金) 05:07:09.24ID:dZlKtiRpd >>470
Cはそんなfuncとかいうキーワードないのに成り立ってて不思議だね
Cはそんなfuncとかいうキーワードないのに成り立ってて不思議だね
474デフォルトの名無しさん (スップ Sd7f-Ch68)
2017/04/28(金) 07:34:38.00ID:NEA7d0M1d C言語の場合
プロトタイプ宣言
と言うように、宣言はメモリの確保を伴わない
関数定義
と言うように、定義はメモリの確保を伴う
オブジェクト指向の場合はどうなるんだろうね
コードは宣言でインスタンス化は定義かな
プロトタイプ宣言
と言うように、宣言はメモリの確保を伴わない
関数定義
と言うように、定義はメモリの確保を伴う
オブジェクト指向の場合はどうなるんだろうね
コードは宣言でインスタンス化は定義かな
475デフォルトの名無しさん (ワッチョイ 6b0f-LXZo)
2017/04/28(金) 08:07:22.91ID:+uUUmIhK0 JavaとかObjective-Cでもfuncとかいうキーワードはないのに成り立ってるね
476デフォルトの名無しさん (ワッチョイ 5b05-yA3i)
2017/04/28(金) 08:23:00.72ID:Z9SVt9YO0 他の新興言語のgoやrustはキーワードつけてるね
あってもなくても成り立たなくはないけど、ある方が流行りなんでしょ
他言語文法仕様をパクってモダンなものを作るんだから流行りに合わせてつけるのは当然でしょ
あってもなくても成り立たなくはないけど、ある方が流行りなんでしょ
他言語文法仕様をパクってモダンなものを作るんだから流行りに合わせてつけるのは当然でしょ
477デフォルトの名無しさん (ワッチョイ 6b0f-LXZo)
2017/04/28(金) 08:24:09.58ID:+uUUmIhK0 なるほどモダンねぇ...
478デフォルトの名無しさん (ワッチョイ 5ff3-L4LY)
2017/04/28(金) 08:25:01.60ID:uTZO7qUH0 型が後置だからだろ
479デフォルトの名無しさん (エムゾネ FF7f-T1v3)
2017/04/28(金) 08:59:20.10ID:1TnL0+oaF480デフォルトの名無しさん (ササクッテロラ Sp1f-eQq1)
2017/04/28(金) 09:15:26.74ID:HrVNNKWrp いや、後置でもコンパイラが頑張ればできるでしょ
481デフォルトの名無しさん (スプッッ Sd1f-xKwp)
2017/04/28(金) 09:57:20.06ID:Ac9Dm7bId 明示しないとコンパイラだけじゃなく人間も頑張らなくちゃならなくなるかも
482デフォルトの名無しさん (アウアウエー Sa7f-L4LY)
2017/04/28(金) 10:00:18.34ID:K29gCEJ0a >>473
Cは変数も関数も型宣言(関数の場合は返り値の型)が先にくるからね
Cは変数も関数も型宣言(関数の場合は返り値の型)が先にくるからね
483デフォルトの名無しさん (ワッチョイ 5f3c-0aF+)
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: () -> () = {…}
funcキーワードを使わないとして
例えば foo() {…} と書いた場合にこれが関数定義なのか
Trailing Closureを付けて関数を実行しようとしてるのか{…}の中身を調べないと分からないし
未定義のものを実行しようとしてるのかどうかの判定も困難
キーワードがあることで構文解析・静的解析・型推論なんかで有利に働いて
言語としての表現力や安全性が高まる 特に表現力
funcじゃなくてletやvarを使ってもいい(Swift的にはこれらは関数とは呼ばないけど)
let foo = {print(“foo”)}
let bar = {() -> () in print(“bar”)}
let baz: () -> () = {…}
484デフォルトの名無しさん (ワッチョイ 5ff3-L4LY)
2017/04/28(金) 18:44:38.27ID:uTZO7qUH0 >>472
Intに入れるじゃ何聞きたいのか分からん
var result: Int = 0
arc4random_buf(&result, MemoryLayout.size(ofValue: result))
こういう話?
それとももっと別の話なのか
Intに入れるじゃ何聞きたいのか分からん
var result: Int = 0
arc4random_buf(&result, MemoryLayout.size(ofValue: result))
こういう話?
それとももっと別の話なのか
485デフォルトの名無しさん (ワッチョイ 5f3c-0aF+)
2017/04/28(金) 21:07:49.54ID:pTZXbcwl0486デフォルトの名無しさん (ワッチョイ 9f9d-w1TE)
2017/05/06(土) 16:47:48.74ID:3sfm3EzD0 『詳解Swift』ってどう?Amazonの評価は真っ二つに別れているんだけど
487デフォルトの名無しさん (ワッチョイ 9354-suAR)
2017/05/06(土) 17:06:44.06ID:Vgrr/US10488デフォルトの名無しさん (ササクッテロロ Spf7-3eBY)
2017/05/06(土) 17:17:20.80ID:Du+O4KVHp 中上級者向けの本で内容を理解出来ないと悪いレビューつける奴いるしな
489デフォルトの名無しさん (ササクッテロリ Spf7-rRTA)
2017/05/06(土) 17:32:44.31ID:rU3gcFGYp swift 3に対応した3版は出たのかねぇ
作者も読者も疲れてそうだと思った
作者も読者も疲れてそうだと思った
490デフォルトの名無しさん (ワッチョイ f23c-q6do)
2017/05/06(土) 17:49:37.89ID:l3lhsLeM0 >>486
Appleの公式本読めば十分だよ
日本語という以外の付加価値は全くないけど
公式本に近い内容を日本語で読みたければ買ってもいいと思う
一度読んだら辞書的な使い方はしないので電子版のほうがオススメ
あと荻原本は公式本よりやや説明がくどいので好き嫌い分かれる
目新しい概念をわかりやすく説明してくれてたりはしない
Appleの公式本読めば十分だよ
日本語という以外の付加価値は全くないけど
公式本に近い内容を日本語で読みたければ買ってもいいと思う
一度読んだら辞書的な使い方はしないので電子版のほうがオススメ
あと荻原本は公式本よりやや説明がくどいので好き嫌い分かれる
目新しい概念をわかりやすく説明してくれてたりはしない
491デフォルトの名無しさん (アウアウウー Sab3-aLIQ)
2017/05/06(土) 17:50:10.60ID:Vu96M1x5a >>488
百田尚樹の本をサヨクが理解出来ないのと一緒だな
百田尚樹の本をサヨクが理解出来ないのと一緒だな
492デフォルトの名無しさん (スッップ Sd52-YlV+)
2017/05/06(土) 17:50:47.77ID:tXDjXsMUd どうせSwiftの自己満仕様変更で古くなる参考書を何故買うかね?
493デフォルトの名無しさん (ワッチョイ 9f9d-w1TE)
2017/05/06(土) 19:55:06.44ID:3sfm3EzD0 古くなるのが嫌なら、IT系の本、特に入門書なんて全部買えないだろ。
それに図書館で買ってもらって読むって手もあるし。
それに図書館で買ってもらって読むって手もあるし。
494デフォルトの名無しさん (ワッチョイ 9354-suAR)
2017/05/06(土) 20:50:30.20ID:Vgrr/US10495デフォルトの名無しさん (ワッチョイ 9354-suAR)
2017/05/06(土) 20:51:18.32ID:Vgrr/US10 >>491
素晴らしい比喩
素晴らしい比喩
496デフォルトの名無しさん (ワッチョイ 9354-suAR)
2017/05/06(土) 20:52:39.76ID:Vgrr/US10497デフォルトの名無しさん (アウアウカー Sa1f-3eBY)
2017/05/06(土) 20:54:11.98ID:A6Xoj7sWa コンピュータの世界はどんどん新しくなるのが当たり前だろ。
言語は、その中でもまだ遅い方よ。
言語は、その中でもまだ遅い方よ。
498デフォルトの名無しさん (JP 0H4b-vxmx)
2017/05/06(土) 21:30:38.70ID:RxOQwEquH ネットの情報は新旧混在ですぐデブリだらけになるからな
499デフォルトの名無しさん (アウアウエー Sa4a-dJIr)
2017/05/06(土) 21:58:01.55ID:I53ls5gra どんどん新しくなるといいながら、未だにフォン・ノイマン型が主流なんだよな
500デフォルトの名無しさん (アウアウカー Sa1f-3eBY)
2017/05/06(土) 22:03:44.34ID:A6Xoj7sWa 分野による。
組み込みじゃハーバード型が主流。
組み込みじゃハーバード型が主流。
501デフォルトの名無しさん (アウアウエー Sa4a-dJIr)
2017/05/06(土) 22:12:19.08ID:I53ls5gra ハーバード型もパラダイム的には大して変わんねーから
502デフォルトの名無しさん (アウアウカー Sa1f-3eBY)
2017/05/06(土) 22:17:28.66ID:A6Xoj7sWa データと命令で分かれてるのは地味に重要だぞ。
高速なCPUじゃ分かりにくいかもだが、低速になる程顕著。
高速なCPUじゃ分かりにくいかもだが、低速になる程顕著。
503デフォルトの名無しさん (スッップ Sd52-YlV+)
2017/05/06(土) 22:31:46.28ID:tXDjXsMUd >>496
言いたいことはまだ発展途上の言語はweb上のドキュメント参照しとけばいいってことだよ
言いたいことはまだ発展途上の言語はweb上のドキュメント参照しとけばいいってことだよ
504デフォルトの名無しさん (ワッチョイ 9354-suAR)
2017/05/06(土) 22:35:29.44ID:Vgrr/US10505デフォルトの名無しさん (ワッチョイ 9354-suAR)
2017/05/06(土) 22:37:36.61ID:Vgrr/US10 フォン・ノイマン型 ハーバード型
ってなんの話だ?
ってなんの話だ?
506デフォルトの名無しさん (ワッチョイ 9354-suAR)
2017/05/06(土) 22:39:01.34ID:Vgrr/US10 AVR, PIC vs Intel, ARM
って事なのね。
って事なのね。
507デフォルトの名無しさん (ササクッテロロ Spf7-3eBY)
2017/05/07(日) 01:04:29.57ID:97sXlIAUp 早々にSwiftに移行した人達よ、工数人件費は抑えられた?上がった?
508デフォルトの名無しさん (ワッチョイ cf92-npF+)
2017/05/07(日) 14:03:00.79ID:w48Ptm+H0 >>491
キチガイの発想は健常者には理解不能だよなあ
キチガイの発想は健常者には理解不能だよなあ
509デフォルトの名無しさん (ササクッテロリ Spf7-rRTA)
2017/05/07(日) 16:21:15.72ID:kFOE8CxJp510デフォルトの名無しさん (ワッチョイ 9354-suAR)
2017/05/07(日) 17:00:21.83ID:4+gPHsDZ0 >>509
ちょっと、どう言う状況なのか?理解不能。
Swift2.3 - 3.xへの移行が難しいってのはどう言う事?
Unsafe族を使いまくってたのとか?
それでも、なんとか移植できるでしょ。2.x -> 3.xはそんなに
困難?
これから段々、Obj-C世代が居なくなるよ。
ちょっと、どう言う状況なのか?理解不能。
Swift2.3 - 3.xへの移行が難しいってのはどう言う事?
Unsafe族を使いまくってたのとか?
それでも、なんとか移植できるでしょ。2.x -> 3.xはそんなに
困難?
これから段々、Obj-C世代が居なくなるよ。
511デフォルトの名無しさん (ササクッテロリ Spf7-rRTA)
2017/05/07(日) 17:34:13.56ID:kFOE8CxJp 1.xの頃は開発環境が業務に耐える品質じゃなかったし
2.xはまだマシだけどやっぱり更新頻繁だったんよ
半年単位で言語仕様、API仕様が変わってたからメンテ工数がobjcの比じゃなかった
2.3から3の移行が厳しいんじゃなくて、それまでが悲惨すぎてもうやめよってなった
比較的更新速度の遅い3.0以降で業務採用始めてたら違ったかもな
まぁ早々に移行したヤツと、最近移行を考えてるヤツは状況違うから、あんまり参考にならんよ
2.xはまだマシだけどやっぱり更新頻繁だったんよ
半年単位で言語仕様、API仕様が変わってたからメンテ工数がobjcの比じゃなかった
2.3から3の移行が厳しいんじゃなくて、それまでが悲惨すぎてもうやめよってなった
比較的更新速度の遅い3.0以降で業務採用始めてたら違ったかもな
まぁ早々に移行したヤツと、最近移行を考えてるヤツは状況違うから、あんまり参考にならんよ
512デフォルトの名無しさん (ワッチョイ 32d4-qAfm)
2017/05/07(日) 18:21:04.90ID:Y4rdOdmi0 本番に耐えられるのはバージョン3からというしな
513デフォルトの名無しさん (ワッチョイ cf92-npF+)
2017/05/07(日) 19:54:43.41ID:w48Ptm+H0 そういうのもあるけどXcodeがクソすぎる
514デフォルトの名無しさん (ワッチョイ 323c-5tHG)
2017/05/07(日) 20:20:45.01ID:59YO4yyL0 うちはまだSwift2.3 - 3.xへの移行まだしてないな。
GCDあたりとか手作業で書き換えないといけないらしいし、
いっそObj-Cに戻したほうがSwift3→4移行の時も苦労しなくて済みそうな気がしてくる。
GCDあたりとか手作業で書き換えないといけないらしいし、
いっそObj-Cに戻したほうがSwift3→4移行の時も苦労しなくて済みそうな気がしてくる。
515デフォルトの名無しさん (ワッチョイ b2c8-tela)
2017/05/07(日) 22:19:05.42ID:dChYZV8N0 swift5もでるみたいだから毎年苦労することになる。
516デフォルトの名無しさん (ワッチョイ f2f3-pbiz)
2017/05/07(日) 22:39:31.23ID:VGI2seLS0 4からCIでソース互換性テストやるようになったから大丈夫だろ
517デフォルトの名無しさん (ワッチョイ 7ba3-LFpG)
2017/05/07(日) 22:45:12.18ID:DJhnYmDa0 そろそろ仕様は安定しましたか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★4 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」 [ぐれ★]
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 過労死の遺族、高市に抗議したため冗談抜きでボロクソに叩かれる [637618824]
- 今年の「感じ」を予想するスレ
- 【速報】今年のゲームオブザイヤー、Clair Obscur: Expedition 33 [779938112]
- たつき鯨のせいで人生狂ったんだが
- 地蔵 [268244553]
