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:ChbPWtRt0600デフォルトの名無しさん (ササクッテロレ Sp27-PerL)
2017/05/17(水) 14:03:46.15ID:AiW2lEeYp :::::::: ┌─────────────── ┐
:::::::: | C#がやられたようだな…. │
::::: ┌───└───────────v───┬┘
::::: |フフフ…奴は四天王の中でも最弱 …. │
┌──└────────v──┬───────┘
| Swiftごときに笑われるとは │
| 我ら四天王の面汚しよ… │
└────v─────────┘
|ミ, / `ヽ /! ,.──、
|彡/二Oニニ|ノ /三三三!, |!
`,' \、、_,|/-ャ ト `=j r=レ /ミ !彡
T 爪| / / ̄|/´__,ャ |`三三‐/ |`=、|,='|
/人 ヽ ミ='/|`:::::::/イ__ ト`ー く__,-, 、 _!_ /
/ `ー─'" |_,.イ、 | |/、 Y /| | | j / ミ`┴'彡\
C++ Java JavaScript
:::::::: | C#がやられたようだな…. │
::::: ┌───└───────────v───┬┘
::::: |フフフ…奴は四天王の中でも最弱 …. │
┌──└────────v──┬───────┘
| Swiftごときに笑われるとは │
| 我ら四天王の面汚しよ… │
└────v─────────┘
|ミ, / `ヽ /! ,.──、
|彡/二Oニニ|ノ /三三三!, |!
`,' \、、_,|/-ャ ト `=j r=レ /ミ !彡
T 爪| / / ̄|/´__,ャ |`三三‐/ |`=、|,='|
/人 ヽ ミ='/|`:::::::/イ__ ト`ー く__,-, 、 _!_ /
/ `ー─'" |_,.イ、 | |/、 Y /| | | j / ミ`┴'彡\
C++ Java JavaScript
601デフォルトの名無しさん (ワッチョイ e33c-ijnK)
2017/05/17(水) 17:22:44.69ID:i1ICJ16i0 /ミ !彡 ●
|`=、|,='| _(_
、 _!_ / ( ゚ω゚ )
/ ミ`┴'彡\ ' `
Visual Basic
|`=、|,='| _(_
、 _!_ / ( ゚ω゚ )
/ ミ`┴'彡\ ' `
Visual Basic
602デフォルトの名無しさん (アウアウエー Sa5f-Y/UN)
2017/05/17(水) 23:03:15.55ID:Noyf0zx+a あれ。。。
SwiftってもしかしてLL?
インタプリタ?
SwiftってもしかしてLL?
インタプリタ?
603デフォルトの名無しさん (アウアウエー Sa5f-Y/UN)
2017/05/17(水) 23:06:00.60ID:Noyf0zx+a とりまC#6の新機能紹介のページググったわ
http://www.buildinsider.net/language/csharplang/0600
http://www.buildinsider.net/language/csharplang/0600
604デフォルトの名無しさん (スップ Sd6a-JjKW)
2017/05/18(木) 09:19:16.04ID:pNgi+zrhd605デフォルトの名無しさん (ワッチョイ 334c-ydzL)
2017/05/18(木) 10:03:29.76ID:pE9H07RL0 表面的なコード量が長いことをコンプレックスに持ってる言語もいるよね・・・
そして、一長一短の他者を認めることもなく他言語を総じて悪と本気で思ってたり
>>603
ざっと見たけどSwiftで同等のこと出来てね?所詮、四天王最弱か
そして、一長一短の他者を認めることもなく他言語を総じて悪と本気で思ってたり
>>603
ざっと見たけどSwiftで同等のこと出来てね?所詮、四天王最弱か
606デフォルトの名無しさん (ワッチョイ 6f54-OqRC)
2017/05/18(木) 10:44:29.14ID:rvD/i38o0607デフォルトの名無しさん (ワッチョイ 5a6e-p3s1)
2017/05/18(木) 11:51:08.83ID:cbVNyV680 Playgroundでシコシコ遊んでると、そのうち出力が表示されなくなったり無反応になるんだが
どうにかならんもんかね
どうにかならんもんかね
608デフォルトの名無しさん (ワッチョイ 6f54-OqRC)
2017/05/18(木) 12:01:12.99ID:rvD/i38o0609デフォルトの名無しさん (ワッチョイ aa3c-YD3J)
2017/05/18(木) 13:53:48.78ID:cxDrW8CM0 Apple無念・・・
Google、KotlinをAndroidアプリ開発言語に選定―I/O会場から大喝采
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
Google、KotlinをAndroidアプリ開発言語に選定―I/O会場から大喝采
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
610デフォルトの名無しさん (アウアウエー Sa22-PCQh)
2017/05/18(木) 13:59:24.41ID:TSzqrQQ0a611デフォルトの名無しさん (ワッチョイ 9372-+Mvj)
2017/05/18(木) 14:56:56.01ID:73+z2CN30 >>609
何が無念?
何が無念?
612デフォルトの名無しさん (ワッチョイ 833c-0jzF)
2017/05/18(木) 15:59:16.23ID:xh1cvqBY0 Swiftにならなかった、ということだろう
Google、SwiftをAndroidの第一級言語にすることを検討?
http://www.excite.co.jp/News/it_g/20160409/Slashdot_16_04_09_014248.html
Google、SwiftをAndroidの第一級言語にすることを検討?
http://www.excite.co.jp/News/it_g/20160409/Slashdot_16_04_09_014248.html
613デフォルトの名無しさん (ワッチョイ 6f54-cCxu)
2017/05/18(木) 16:19:36.22ID:rvD/i38o0614デフォルトの名無しさん (ワッチョイ 6f54-cCxu)
2017/05/18(木) 16:24:16.64ID:rvD/i38o0615デフォルトの名無しさん (ワッチョイ 6f54-cCxu)
2017/05/18(木) 16:25:14.83ID:rvD/i38o0 swift -> kotlinコンバーターとか作れるのかなぁ?
616デフォルトの名無しさん (ササクッテロリ Sp13-CR9d)
2017/05/18(木) 16:32:06.75ID:fOFaQvk5p SwiftはLLVMでコンパイルするんだからJVM向けバイナリ吐けばいいだけでしょ
なんでKotlinを挟む必要があるのか、それがワカラナイ(色んな意味でスットボケ
なんでKotlinを挟む必要があるのか、それがワカラナイ(色んな意味でスットボケ
617デフォルトの名無しさん (ワッチョイ 6f54-cCxu)
2017/05/18(木) 16:33:43.40ID:rvD/i38o0618デフォルトの名無しさん (スプッッ Sd8a-M94C)
2017/05/19(金) 20:58:58.36ID:RywFaTWpd swiftでiOS勉強したいのですが、参考になるOSSのアプリとか無いでしょうか
ドキュメントから入るより出来の良いコードを見たい派です
ドキュメントから入るより出来の良いコードを見たい派です
619デフォルトの名無しさん (ワッチョイ 7a6e-p3s1)
2017/05/19(金) 21:13:02.47ID:lzW4mJ600 GitHubにいっぱいあるだろ
620デフォルトの名無しさん (ワンミングク MM07-yI6Q)
2017/05/20(土) 13:02:32.18ID:wa2Zpry6M >>614
同意
同意
621デフォルトの名無しさん (ワッチョイ b33c-kvD5)
2017/05/20(土) 14:50:47.85ID:tp08styd0 Kotlinのval,varはScala先輩に倣ったものだから仕方ない
622デフォルトの名無しさん (ワッチョイ de1f-ysFl)
2017/05/21(日) 00:39:31.16ID:gwfvvdvz0 swift はそろそろ安定期に入ってもいいと思うんだ
623デフォルトの名無しさん (ワッチョイ 5f54-OqRC)
2017/05/21(日) 09:35:27.70ID:PKguD9Ia0 >>622
bugレポ、沢山上がってるが、これはどうする?
bugレポ、沢山上がってるが、これはどうする?
624デフォルトの名無しさん (ワッチョイ c372-+Mvj)
2017/05/21(日) 11:11:35.71ID:xz6V7we20 バグレポを出す時にプルリクをセットにすれば安定はすぐだ
625デフォルトの名無しさん (ワッチョイ ff46-aHqd)
2017/05/21(日) 11:13:42.65ID:Wx20c4Ig0 >>622
無理無理
無理無理
626デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/22(月) 09:20:46.59ID:QM6p1JyG0627デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/22(月) 09:23:11.36ID:QM6p1JyG0 Swift4 betaをinstallした後、Xcode8.3.2で切り替えながら使うqiita記事を見失った。
なんと言うタイトルだったか?どんなtagでqiitaを検索すればhitするのか?
教えてクレェ?
なんと言うタイトルだったか?どんなtagでqiitaを検索すればhitするのか?
教えてクレェ?
628デフォルトの名無しさん (ワッチョイ 8af3-TEJk)
2017/05/22(月) 10:13:24.24ID:np8fDJ8H0 Xcode用のsnapshotはインストーラ形式だしダウンロードしてインストールしてXcodeのtoolchainで切り替えるだけの簡単操作やろ
Xcodeでの切り替えはXcode>Toolchainsか環境設定>Components>Toolchains
Terminalでの切り替えは
毎回頭にxcrun -toolchain swiftとつけて
xcrun -toolchain swift swift -version
とするか
export TOOLCHAINS=swift
すればいい
インストールされる実体は
/Library/Developer/Toolchains/xxx.xctoolchain
にある
.xctoolchain内のInfo.plistにあるCFBundleIdentifierをtoolchainの引数に指定すれば、複数のSnapshotをインストールしてても細かく切り替えられる
xcrun --toolchain org.swift.3020170515a swift -version
とか
去年はPlaygroundsがToolchainに対応してなかったけど今年は対応済みのようなのでPlaygroundsで色々試せていい
https://github.com/ole/whats-new-in-swift-4
Xcodeでの切り替えはXcode>Toolchainsか環境設定>Components>Toolchains
Terminalでの切り替えは
毎回頭にxcrun -toolchain swiftとつけて
xcrun -toolchain swift swift -version
とするか
export TOOLCHAINS=swift
すればいい
インストールされる実体は
/Library/Developer/Toolchains/xxx.xctoolchain
にある
.xctoolchain内のInfo.plistにあるCFBundleIdentifierをtoolchainの引数に指定すれば、複数のSnapshotをインストールしてても細かく切り替えられる
xcrun --toolchain org.swift.3020170515a swift -version
とか
去年はPlaygroundsがToolchainに対応してなかったけど今年は対応済みのようなのでPlaygroundsで色々試せていい
https://github.com/ole/whats-new-in-swift-4
629デフォルトの名無しさん (ササクッテロリ Sp03-CR9d)
2017/05/22(月) 10:14:58.82ID:WxrTRTpJp xcrun selectとか(定期待ち)
630デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/22(月) 10:47:13.23ID:QM6p1JyG0631デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/23(火) 10:52:51.90ID:3fZmvxNt0 Swift歴2年、アプリリリース経験無しの非IT系リーマンです。Generics protocolとか難しいなぁと思いながら、RxSwiftのコードを解読してます。
Fortran, C++のコードを書いて金をもらった事があります。C#, Java, Obj-Cもチョコっといじった事があります。
Swift, C#, Java, C++の4つの内、どれが一番難しいと思います?
Fortran, C++のコードを書いて金をもらった事があります。C#, Java, Obj-Cもチョコっといじった事があります。
Swift, C#, Java, C++の4つの内、どれが一番難しいと思います?
632デフォルトの名無しさん (ワッチョイ 7a6e-p3s1)
2017/05/23(火) 11:07:24.17ID:nyMT4OHb0 難しさでいったら、C++ 一択やろなぁ
633デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/23(火) 11:12:58.06ID:3W0XlzKra 圧倒的にC++。
今でもMFCには玄人っぽさへの憧れはあるけど、MFCの本は最盛期に比べて大分減ったなぁ。。。
JavaやC#してから(特にC#のがC++に近いけど分からなくなる一歩手前まで取り入れてるからオススメ)、C++行くと理解が進むね。
今でもMFCには玄人っぽさへの憧れはあるけど、MFCの本は最盛期に比べて大分減ったなぁ。。。
JavaやC#してから(特にC#のがC++に近いけど分からなくなる一歩手前まで取り入れてるからオススメ)、C++行くと理解が進むね。
634デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/23(火) 11:52:49.93ID:3fZmvxNt0 AppleのReferenceで混乱してる記述を発見
1. メタ・タイプを戻すグローバル関数type(of:)の説明には、戻り値がMetatypeとある。
2. メタ・タイプを引数にとるUITableViewCell.registerの説明には、引数がAnyClassとある。
どっちかに記述を統一してほしい。
1. メタ・タイプを戻すグローバル関数type(of:)の説明には、戻り値がMetatypeとある。
2. メタ・タイプを引数にとるUITableViewCell.registerの説明には、引数がAnyClassとある。
どっちかに記述を統一してほしい。
635デフォルトの名無しさん (ワッチョイ 8af3-TEJk)
2017/05/23(火) 13:01:08.53ID:IPskfFz70 Metatypeはstructやenumも含めた型でAnyClassはclassだけじゃない
636デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/23(火) 13:07:30.75ID:3fZmvxNt0 >>635
なるほどぉ
なるほどぉ
637デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/23(火) 13:46:30.45ID:3fZmvxNt0 >>633
Visual Studio6の頃までしか、MFCは知らんけど、
Microsoftは、MFCを放置してるんちゃうの?
同時に、C++11, C++14って進化してるのに、Micorsoft C++はこれも独自仕様
で放置されてる、ちゅうのが俺の印象なんすけど、違うんでしょうか?
最近のMicrosoft系開発環境に疎いので間違ってたら申し訳ないすけど。
Visual Studio6の頃までしか、MFCは知らんけど、
Microsoftは、MFCを放置してるんちゃうの?
同時に、C++11, C++14って進化してるのに、Micorsoft C++はこれも独自仕様
で放置されてる、ちゅうのが俺の印象なんすけど、違うんでしょうか?
最近のMicrosoft系開発環境に疎いので間違ってたら申し訳ないすけど。
638デフォルトの名無しさん (ワッチョイ b33c-0jzF)
2017/05/23(火) 14:21:59.30ID:ka9VvDM30 >>634
違いは>>635(AnyClassはclassだけ)であってるけど
補足するとMetatypeという識別子の型は無い
あれは単なるジェネリクスのプレースホルダ名
実際のメタタイプの型は「(型名).Type」でAny.Type型にも入れられる
AnyClassは「AnyObject.Type」のエイリアスでclassのメタタイプのみ入る
ちなみにメタタイプの値自体はclass型でないのでメタタイプのメタタイプはAnyClassに入らない
class A{}
let a:AnyClass = A.self //OK
let b:AnyClass = A.Type.self //NG
let c:Any.Type = A.Type.self //OK
違いは>>635(AnyClassはclassだけ)であってるけど
補足するとMetatypeという識別子の型は無い
あれは単なるジェネリクスのプレースホルダ名
実際のメタタイプの型は「(型名).Type」でAny.Type型にも入れられる
AnyClassは「AnyObject.Type」のエイリアスでclassのメタタイプのみ入る
ちなみにメタタイプの値自体はclass型でないのでメタタイプのメタタイプはAnyClassに入らない
class A{}
let a:AnyClass = A.self //OK
let b:AnyClass = A.Type.self //NG
let c:Any.Type = A.Type.self //OK
639デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/23(火) 17:12:29.92ID:3fZmvxNt0 /var/folders/4x/4kvmnvfd46zdv9xt45wf2kx00000gn/T/
vzb3TAU/1:20:19: warning: operator should no longer be declared with body
infix operator ^^ { }
~^~~
SwiftコンパイラーをTerminal.appで動かすと上記の様なwarningが出ます。
エラーの内容は^^演算子が定義されていません。って事だんですけど。これは、置いておいて、
1:20:19は何を表わしてるのでしょうか?20行目19カラムって事は判ったのですが、1は何でしょう?
1番目のソースって事なんでしょうか?
vzb3TAU/1:20:19: warning: operator should no longer be declared with body
infix operator ^^ { }
~^~~
SwiftコンパイラーをTerminal.appで動かすと上記の様なwarningが出ます。
エラーの内容は^^演算子が定義されていません。って事だんですけど。これは、置いておいて、
1:20:19は何を表わしてるのでしょうか?20行目19カラムって事は判ったのですが、1は何でしょう?
1番目のソースって事なんでしょうか?
640デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/23(火) 18:36:11.48ID:PJIONmxya >>637
リボンUIはMFCらしいってのまでは追ってたんで、今も地味に進化してると思うけど、おいらも分からん。
あの機能は何の為かとか分かるようになったけど、結局C++触らなくなった。
再入門しようにも入門書の少なさよ。。。
リボンUIはMFCらしいってのまでは追ってたんで、今も地味に進化してると思うけど、おいらも分からん。
あの機能は何の為かとか分かるようになったけど、結局C++触らなくなった。
再入門しようにも入門書の少なさよ。。。
641デフォルトの名無しさん (ワッチョイ ca3b-ydzL)
2017/05/23(火) 19:14:39.26ID:1Q8iu32F0 ビルドキャッシュとして
/var/folders/4x/4kvmnvfd46zdv9xt45wf2kx00000gn/T/vzb3TAU/1
ってファイルがあるんじゃないの
一時的に作られてすぐ削除されるかもしれんから存在確認できるか知らんけど
/var/folders/4x/4kvmnvfd46zdv9xt45wf2kx00000gn/T/vzb3TAU/1
ってファイルがあるんじゃないの
一時的に作られてすぐ削除されるかもしれんから存在確認できるか知らんけど
642デフォルトの名無しさん (ワッチョイ fff5-sZ5x)
2017/05/24(水) 01:14:07.99ID:9HF6LZlN0 そもそもwindowsのアプリ開発でMFC使う事情って保守以外に何あるの?
643デフォルトの名無しさん (ワッチョイ ca3b-ydzL)
2017/05/24(水) 07:14:18.79ID:6yksy5B10 このスレチの話題の結末が
MFCがmacOSで使える、そうSwiftならね
だったら感動する
MFCがmacOSで使える、そうSwiftならね
だったら感動する
644デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/24(水) 10:39:54.11ID:2xFOJ35Oa 感動はするけど、真っ平御免だなw
645デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/24(水) 10:40:45.91ID:2xFOJ35Oa646デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/24(水) 10:44:09.55ID:vuqBov/y0647デフォルトの名無しさん (JP 0H2f-CgLL)
2017/05/24(水) 11:45:23.69ID:4nncZNTTH MFCはクラスライブラリとは言ってるけどただのモジュールだからなω
648デフォルトの名無しさん (ワッチョイ 7a6e-p3s1)
2017/05/24(水) 12:03:02.42ID:2l4fECtb0 KFCはファーストフードとは言ってるけどただのフライドチキンだからなω
649デフォルトの名無しさん (JP 0H2f-CgLL)
2017/05/24(水) 12:10:44.50ID:4nncZNTTH KFC高いよね
650デフォルトの名無しさん (アウアウエー Sac2-9r6K)
2017/05/24(水) 12:40:42.62ID:QzCZ6xD4a あとポケトも不味いよね
651デフォルトの名無しさん (ササクッテロリ Sp03-ydzL)
2017/05/24(水) 12:43:35.78ID:5Ui6S+Mpp macもファストフードって言ってるけどハンバーガーなんだよな...
652デフォルトの名無しさん (ワッチョイ fff5-sZ5x)
2017/05/24(水) 15:21:05.18ID:9HF6LZlN0 もうkotlinでいいんじゃね。大体同じだし。
653デフォルトの名無しさん (ワッチョイ 7a6e-p3s1)
2017/05/24(水) 15:27:20.63ID:yyV+KPjA0 Kotlinの方が名前が可愛いな
654デフォルトの名無しさん (ブーイモ MMea-XqYc)
2017/05/24(水) 15:39:03.23ID:EADXj+S1M バカッターの次はマスト鈍かよ
Swiftはコンパイル必要とかスクリプト言語だとかクッソデタラメばかり撒き散らしてやがる
Swiftはスクリプト言語のようにJIT実行もできるし事前コンパイルして動作することもできるっちゅーねん
よくわかってないからと言って既存のカテゴリに当てはめようとするからおかしくなるんだ。黙ってればいいのに。
twitterもマストドンもバカに絡まれたくないから間違ってても誰も訂正してくれないてことはもうそろそろ理解しないといけないだろうに
Swiftはコンパイル必要とかスクリプト言語だとかクッソデタラメばかり撒き散らしてやがる
Swiftはスクリプト言語のようにJIT実行もできるし事前コンパイルして動作することもできるっちゅーねん
よくわかってないからと言って既存のカテゴリに当てはめようとするからおかしくなるんだ。黙ってればいいのに。
twitterもマストドンもバカに絡まれたくないから間違ってても誰も訂正してくれないてことはもうそろそろ理解しないといけないだろうに
655デフォルトの名無しさん (ワッチョイ dea3-M94C)
2017/05/24(水) 15:43:46.34ID:820zba2j0 つまりkotlin統一でいいね?
656デフォルトの名無しさん (ワッチョイ 9ff3-A/6v)
2017/05/24(水) 16:16:47.79ID:vuqBov/y0 kotlinのvar, valが嫌いだ。
var, letにしてくれ!
var, letにしてくれ!
657デフォルトの名無しさん (ワッチョイ b33c-0jzF)
2017/05/24(水) 17:53:01.63ID:IPRnvfLw0 じゃあvar, letにした新言語Kotiftで
658デフォルトの名無しさん (アウアウエー Sac2-PCQh)
2017/05/24(水) 18:40:00.41ID:fS2T0Ehba659デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/25(木) 08:20:49.95ID:STB2bQ410660デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/25(木) 08:39:03.16ID:STB2bQ410 RAD StudioってのでiOSアプリ作れるみたい。
661デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/25(木) 09:04:58.00ID:STB2bQ410662デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 09:55:30.40ID:pDlob0Fd0 >>661
ブラクラ
ブラクラ
663デフォルトの名無しさん (JP 0Hcf-Evzo)
2017/05/25(木) 10:26:57.11ID:nE79I92lH ブラクラではないが特に読む意味もなかった
664デフォルトの名無しさん (アウアウエー Sa3f-0req)
2017/05/25(木) 10:35:05.59ID:jD8c7u6va665デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/25(木) 11:18:46.81ID:STB2bQ410666デフォルトの名無しさん (スッップ Sdbf-fYd5)
2017/05/25(木) 12:08:23.03ID:ETNdktOYd >>662
ブラクラとは、どういう意味ですか。
ブラクラとは、どういう意味ですか。
667デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 12:36:36.05ID:pDlob0Fd0 >>666
ブラクラとは、どういう意味ですか。とは、どういう意味ですか?
ブラクラとは、どういう意味ですか。とは、どういう意味ですか?
668デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/25(木) 12:53:08.46ID:STB2bQ410 >>667
お前、相当、捻くれ者!
お前、相当、捻くれ者!
669デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 13:09:18.12ID:pDlob0Fd0 >>668
ありがとー
ありがとー
670デフォルトの名無しさん (ワッチョイ 9ff3-UHtP)
2017/05/25(木) 13:38:00.17ID:A2RaX9kE0 完全にスレチな話題延々してるのとどっちもどっち
671デフォルトの名無しさん (ワッチョイ fbf3-W32U)
2017/05/25(木) 16:35:11.41ID:trjr6FJg0 下のドキュメントを読むにCopy On Writeで最適化する場合にはprotocolやclassでラップせよと言ってるんだけど
Copy On Writeって関数引数に単純なstruct型を渡した時の値渡しには適用されないって認識であってる?
教えてエロい人
https://github.com/apple/swift/blob/master/docs/OptimizationTips.rst
Advice: Use copy-on-write semantics for large values
Copy On Writeって関数引数に単純なstruct型を渡した時の値渡しには適用されないって認識であってる?
教えてエロい人
https://github.com/apple/swift/blob/master/docs/OptimizationTips.rst
Advice: Use copy-on-write semantics for large values
672デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 17:14:53.66ID:pDlob0Fd0 どこに
>Copy On Writeで最適化する場合にはprotocolやclassでラップせよ
とか書いてあんだよ
>Copy On Writeって関数引数に単純なstruct型を渡した時の値渡しには適用されないって認識であってる?
んなわけねーだろ
>Copy On Writeで最適化する場合にはprotocolやclassでラップせよ
とか書いてあんだよ
>Copy On Writeって関数引数に単純なstruct型を渡した時の値渡しには適用されないって認識であってる?
んなわけねーだろ
673デフォルトの名無しさん (ワッチョイ fbf3-W32U)
2017/05/25(木) 17:36:25.00ID:trjr6FJg0 あ、すまん、Advice:の節を注視して前の節を飛ばしてた
> When we copy values (the effect of assignment, initialization, and argument passing) the program will create a new copy of the value.
値渡しはコピーするってしっかり書いてあったわ
> When we copy values (the effect of assignment, initialization, and argument passing) the program will create a new copy of the value.
値渡しはコピーするってしっかり書いてあったわ
674デフォルトの名無しさん (ワッチョイ 9ff3-UHtP)
2017/05/25(木) 17:42:45.12ID:A2RaX9kE0 structは常にコピー
このstructはcopy on writeです、という場合も便宜上そう言ってるだけで、実際は中の参照型のストレージをcopy on writeしてるんであってstruct自体は常にコピー
ただしin-out引数だけは例外的にstructでも参照渡しになる場合がある
このstructはcopy on writeです、という場合も便宜上そう言ってるだけで、実際は中の参照型のストレージをcopy on writeしてるんであってstruct自体は常にコピー
ただしin-out引数だけは例外的にstructでも参照渡しになる場合がある
675デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 17:46:16.79ID:pDlob0Fd0 copy on writeだから、コビーの必要性が生じた時にコピーが発生するんだろ
structであっても参照するだけならコピーはしない(はず)
structであっても参照するだけならコピーはしない(はず)
676デフォルトの名無しさん (ワッチョイ fbf3-W32U)
2017/05/25(木) 17:59:30.69ID:trjr6FJg0677デフォルトの名無しさん (ワッチョイ fbf3-W32U)
2017/05/25(木) 18:01:40.91ID:trjr6FJg0 structの参照渡しのためのin-out parameter(inout)は使いたくないと思った
それするなら、最初からclassでAPIを設計しろというね
それするなら、最初からclassでAPIを設計しろというね
678デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 18:02:56.87ID:pDlob0Fd0 >>676
常にコピーなら、コピーオンライトとは呼べないな
常にコピーなら、コピーオンライトとは呼べないな
679デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 18:12:33.09ID:pDlob0Fd0 >>677
inoutを指定しなくないから、クラスにするって考え方がそもそもおかしい
inoutを指定しなくないから、クラスにするって考え方がそもそもおかしい
680デフォルトの名無しさん (スプッッ Sdbf-4cAo)
2017/05/25(木) 18:31:58.93ID:ud72tGp9d >>678
メモリ操作としてのコピーと、変数への代入時の複製を混同すると、そういう訳のわからない議論になるね
structはコピーオンライトと言っても、osやハードウェアのレイヤーになるとclassであっても必要に応じてコピー(と消去を組み合わせた移動)を行ってるんだけどね。
swiftのレイヤーでは、常にコピーされるって言って良いんじゃないかな
コピーの為に支払うコストがいつ払うことになるか、そもそも払う必要が生じるのか、っていう部分にコピーオンライトの概念が関係してくるだけなんだから
メモリ操作としてのコピーと、変数への代入時の複製を混同すると、そういう訳のわからない議論になるね
structはコピーオンライトと言っても、osやハードウェアのレイヤーになるとclassであっても必要に応じてコピー(と消去を組み合わせた移動)を行ってるんだけどね。
swiftのレイヤーでは、常にコピーされるって言って良いんじゃないかな
コピーの為に支払うコストがいつ払うことになるか、そもそも払う必要が生じるのか、っていう部分にコピーオンライトの概念が関係してくるだけなんだから
681デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 18:40:08.35ID:pDlob0Fd0 >>680
ごちゃごちゃした理論は言語設計者の領域の話で
プラグラマ視点でのコピーオンライトという文脈では書き換え時にコピー(コスト)が発生するという単純な理解で特に問題ないだろ
じゃないと、Structは常にコピーが発生するからデータの粒度をなるべく小さくして関数への引数渡しも注意しないととか余計な設計負荷を意識しないといけなくなる
ごちゃごちゃした理論は言語設計者の領域の話で
プラグラマ視点でのコピーオンライトという文脈では書き換え時にコピー(コスト)が発生するという単純な理解で特に問題ないだろ
じゃないと、Structは常にコピーが発生するからデータの粒度をなるべく小さくして関数への引数渡しも注意しないととか余計な設計負荷を意識しないといけなくなる
682デフォルトの名無しさん (ササクッテロリ Sp0f-W32U)
2017/05/25(木) 19:05:12.83ID:rwN5JfUNp structは値渡し、classは参照渡し、Array Structの中身はCOWで処理、プログラマはこれを意識して最適化しろ
と>>671のリンク先で言ってるわけだが?
プログラマのレイヤーで考えるべきことが提示されてるのに、なぜそれを見ようとしないのか
と>>671のリンク先で言ってるわけだが?
プログラマのレイヤーで考えるべきことが提示されてるのに、なぜそれを見ようとしないのか
683デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/25(木) 19:55:10.84ID:pDlob0Fd0 でかいデータをstructにつっこんで扱う時に注意すべきことが書いてあるだけだろ
つまり代入が頻繁に発生する状況でも、そのプロパティに実際にアクセスがあるまでコピーを遅延させるテクニックについて触れられてるだけ
別に関数の引数に値型を使うなとかとんちんかんなことは書いてないな
つまり代入が頻繁に発生する状況でも、そのプロパティに実際にアクセスがあるまでコピーを遅延させるテクニックについて触れられてるだけ
別に関数の引数に値型を使うなとかとんちんかんなことは書いてないな
684デフォルトの名無しさん (ワッチョイ 9f3c-V38z)
2017/05/25(木) 21:10:12.75ID:1RtxtHBK0 SwiftでCOW意識する人なんているんだ。
そういう人はC++とかRustとか使えばいいのに。
そういう人はC++とかRustとか使えばいいのに。
685デフォルトの名無しさん (ワッチョイ 6b3c-9J/J)
2017/05/25(木) 22:26:04.80ID:VkchUDpW0 最適化しない場所も含めて意識くらいはするでしょ
その程度のことで言語を変える理由にはならんよ
むしろStructでCoWという設計だからこと気兼ねなく渡せるってことに気付いた方がいい
その程度のことで言語を変える理由にはならんよ
むしろStructでCoWという設計だからこと気兼ねなく渡せるってことに気付いた方がいい
686デフォルトの名無しさん (ワッチョイ fbf3-W32U)
2017/05/26(金) 05:16:56.16ID:xRlJL6be0 誤: StructでCoWという設計だからこと気兼ねなく渡せる
正: Array StructでCoWという設計だからこと気兼ねなく渡せる
どうしてもSturct全般でCOWが適用されると思い込みたいアホが食いしばってて笑う
正: Array StructでCoWという設計だからこと気兼ねなく渡せる
どうしてもSturct全般でCOWが適用されると思い込みたいアホが食いしばってて笑う
687デフォルトの名無しさん (ワッチョイ 6b3c-9J/J)
2017/05/26(金) 07:23:41.84ID:nbO+4ovP0 >>686
「Structが」じゃなくて「Structで」な
Arrayに限らず、StringやDictionaryなどのstructでCoWを実装したもの全般
classでCoWを実装する場合は使う側が明示的にcopy()clone()などを呼ぶかinitを使う必要があるが
structでは代入,引数渡し,戻り値がコピーセマンティクスなので透過的に扱うことが出来る
「Structが」じゃなくて「Structで」な
Arrayに限らず、StringやDictionaryなどのstructでCoWを実装したもの全般
classでCoWを実装する場合は使う側が明示的にcopy()clone()などを呼ぶかinitを使う必要があるが
structでは代入,引数渡し,戻り値がコピーセマンティクスなので透過的に扱うことが出来る
688デフォルトの名無しさん (ワッチョイ fbf3-W32U)
2017/05/26(金) 08:03:17.32ID:xRlJL6be0 COWの話題から、いつの間にか参照渡し/値渡しの解説になっててワロタ
結局はSturctでCOWが常時適用されるわけじゃないから気をつけようってこったな
参照渡し/値渡しの違いを知らないLL言語勢もいるかもしれんが、別の問題だから気にしない
>>671のReducing Dynamic Dispatchの節も面白い
SwiftはObjective-Cと違ってダイナミックディスパッチを減らす機構を持ってるぜ、と
これを徹底的に使い倒したら、局所的にはObjCよりSwiftの方が性能よくなる可能性が微レ存?
結局はSturctでCOWが常時適用されるわけじゃないから気をつけようってこったな
参照渡し/値渡しの違いを知らないLL言語勢もいるかもしれんが、別の問題だから気にしない
>>671のReducing Dynamic Dispatchの節も面白い
SwiftはObjective-Cと違ってダイナミックディスパッチを減らす機構を持ってるぜ、と
これを徹底的に使い倒したら、局所的にはObjCよりSwiftの方が性能よくなる可能性が微レ存?
689デフォルトの名無しさん (ワッチョイ 6b3c-nNOo)
2017/05/26(金) 08:31:19.29ID:nbO+4ovP0 細かいところだけどclassは参照の値渡しでinoutは参照渡し
690デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/26(金) 08:45:20.46ID:zBDwmOYm0 >>676
protocolにまつわる言い回しを色々見ますが、どれが適当なのでしょう?
1. protocolを切る
2. protocolを当てる
3. protocolに準拠させる
すべてadding protocol confromanceの訳語だとおもうんですけど。
protocolにまつわる言い回しを色々見ますが、どれが適当なのでしょう?
1. protocolを切る
2. protocolを当てる
3. protocolに準拠させる
すべてadding protocol confromanceの訳語だとおもうんですけど。
691デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/26(金) 08:49:45.12ID:zBDwmOYm0 最近のCPUはSIMD命令(SSEとかAVRとか言われるやつ)を内蔵していて、
でかいStructも一発でコピーできるって、理解は正しいっすかねぇ?
512bitレジスタが32個あって、しかもその32レジスタはペアで使える。
って事は、512bit x 32個 = 2Kbyteを一発でレジスタ -> メモリへmoveしたり
メモリ -> レジスタloadできる。
この理解はOKっすかねぇ。
でかいStructも一発でコピーできるって、理解は正しいっすかねぇ?
512bitレジスタが32個あって、しかもその32レジスタはペアで使える。
って事は、512bit x 32個 = 2Kbyteを一発でレジスタ -> メモリへmoveしたり
メモリ -> レジスタloadできる。
この理解はOKっすかねぇ。
692デフォルトの名無しさん (ワッチョイ 9ff3-UHtP)
2017/05/26(金) 10:19:08.37ID:LS4RNUEG0 >>689
in-out引数は参照渡しじゃない
in-out引数のセマンティクスはあくまでcopy-in copy-outで、最適化で参照渡しになる"場合もある"だけ
リファレンスではin-out引数が参照渡しであると想定したコードを書いてはいけないとはっきり言ってる
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-ID545
var i: Int = 0 {
willSet { print("willSet: ¥(newValue)") }
}
i = 1 // prints "willSet: 1"
i = 2 // prints "willSet: 2"
func f(_ v: inout Int) {
v = 3
v = 4
}
f(&i) // prints "willSet: 4"
参照渡しなら"willSet: 3"と"willSet: 4"両方表示されるはずだけど
実際には関数に入るときにiの値がvにcopy-inされ
関数から出るときにvの値がiにcopy-outされるので
copy-out時の"willSet: 4"しか表示されない
in-out引数は参照渡しじゃない
in-out引数のセマンティクスはあくまでcopy-in copy-outで、最適化で参照渡しになる"場合もある"だけ
リファレンスではin-out引数が参照渡しであると想定したコードを書いてはいけないとはっきり言ってる
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-ID545
var i: Int = 0 {
willSet { print("willSet: ¥(newValue)") }
}
i = 1 // prints "willSet: 1"
i = 2 // prints "willSet: 2"
func f(_ v: inout Int) {
v = 3
v = 4
}
f(&i) // prints "willSet: 4"
参照渡しなら"willSet: 3"と"willSet: 4"両方表示されるはずだけど
実際には関数に入るときにiの値がvにcopy-inされ
関数から出るときにvの値がiにcopy-outされるので
copy-out時の"willSet: 4"しか表示されない
693デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/26(金) 10:43:47.67ID:zBDwmOYm0 >>692
すんばらしい、説明
すんばらしい、説明
694デフォルトの名無しさん (ワッチョイ 0f1f-9J/J)
2017/05/27(土) 14:04:16.20ID:SDTaiU/Z0695デフォルトの名無しさん (ワッチョイ 7b46-sPQt)
2017/05/27(土) 21:00:43.52ID:h0JsdT2O0 >>694の心の声
(やべぇ、まじかよ…。バグ仕込んじまった…)
(やべぇ、まじかよ…。バグ仕込んじまった…)
696デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/27(土) 21:48:41.96ID:aL4+kPgB0 inoutで渡された配列変数のオリジナルを関数内で操作しても副作用はないみたいただけどな
var a = [Int]()
func f(_ v: inout [Int]) {
v.append(3)
a.append(4)
v.append(5)
}
a.append(1)
f(&a)
a.append(2)
print(a) // [1, 3, 4, 5, 2]
ただ、それを想定するなということなんだろ
var a = [Int]()
func f(_ v: inout [Int]) {
v.append(3)
a.append(4)
v.append(5)
}
a.append(1)
f(&a)
a.append(2)
print(a) // [1, 3, 4, 5, 2]
ただ、それを想定するなということなんだろ
697デフォルトの名無しさん (ワッチョイ 0fd4-ZpYF)
2017/05/27(土) 21:57:51.65ID:e57lt1AJ0 SwiftってiOSアプリ以外に広がる可能性ある?
698デフォルトの名無しさん (ワッチョイ 6b3c-waVG)
2017/05/27(土) 22:13:54.38ID:7vlRlcaj0 少なくともwillSetがある場合は参照渡しの最適化が掛からないようだね
以下のAはcopy-in, copy-outになっていて、Bは参照渡しになってる
http://swift.sandbox.bluemix.net/#/repl/592977d0d72c2a7516859cca
以下のAはcopy-in, copy-outになっていて、Bは参照渡しになってる
http://swift.sandbox.bluemix.net/#/repl/592977d0d72c2a7516859cca
699デフォルトの名無しさん (ワッチョイ 0f1f-9J/J)
2017/05/27(土) 22:20:21.28ID:SDTaiU/Z0700デフォルトの名無しさん (ワッチョイ 6b3c-9J/J)
2017/05/27(土) 22:21:46.44ID:7vlRlcaj0 >>696
var a = [Int]() { willSet{ } } にしたら [1, 3, 5, 2] になるね
var a = [Int]() { willSet{ } } にしたら [1, 3, 5, 2] になるね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 [蚤の市★]
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- クリスマスの「予定なし」54% [少考さん★]
- 日銀0.75%に利上げへ、30年ぶりの水準に 19日金融政策決定会合 [蚤の市★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★2
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★3
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- 茶ぁしばこうや···
- 官僚が夜中まで頑張って作った答弁書には「台湾有事答えない」と書いてあったのに、高市が答えてしまったことが発覚🤦‍♂ [271912485]
- J( 'ー`)し「で、アンタなんで働かないの?」 ワイ👶「理由は2つありまして~」🏡
