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:ChbPWtRt014デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/20(月) 22:05:11.29ID:E/pOlJmJ015デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/20(月) 22:12:48.75ID:4Xv+kGUd0 Executes blocks submitted to the main queue.
って事は、
DispatchQueue.main.async(execute: { print("dic = ¥(dic)") })
を実行しているみたいだ。dispatchMain()は。
exit(EXIT_SUCCESS)が無いと、dispatchMain()は永遠に実行待ちするみたい。
しょうが無いので、^Z + kill %1した。
って事は、
DispatchQueue.main.async(execute: { print("dic = ¥(dic)") })
を実行しているみたいだ。dispatchMain()は。
exit(EXIT_SUCCESS)が無いと、dispatchMain()は永遠に実行待ちするみたい。
しょうが無いので、^Z + kill %1した。
16デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/20(月) 22:14:47.48ID:SiY39E3I0 while task.state == .running {
RunLoop.current.run(mode: .commonModes, before: .distantFuture)
}
RunLoop.current.run(mode: .commonModes, before: .distantFuture)
}
17デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/20(月) 23:26:54.19ID:SiY39E3I0 extension URLSessionTask {
func wait() {
while state == .running {
RunLoop.current.run(mode: .commonModes, before: .distantFuture)
}
}
}
let task = ...dataTask(...) { ... }
task.resume()
task.wait()
これならdownloadTaskとか他のtaskでも、上のextensionで1つで全部対応できていいと思う
task.wait()だけで済むから、DispatchGroupとかDispatchSemaphoreみたいにenter/leave/signalとかが各所に散らばる面倒臭さもない
DispatchSemaphore使ってsyncDataTaskみたいなのextensionに書く例stackoverflowにあったけど
これでもいいけど他のtask使いたくなったとき、そのtaskのsyncバージョンをまた別に書かないといけないのが面倒臭い
http://stackoverflow.com/a/34308158
dispatchMainはexitの置き場所で困りそう
2つのtask待ち合わせるならどこにexit置くのと考えると問題を先送りしてるだけな気がする
func wait() {
while state == .running {
RunLoop.current.run(mode: .commonModes, before: .distantFuture)
}
}
}
let task = ...dataTask(...) { ... }
task.resume()
task.wait()
これならdownloadTaskとか他のtaskでも、上のextensionで1つで全部対応できていいと思う
task.wait()だけで済むから、DispatchGroupとかDispatchSemaphoreみたいにenter/leave/signalとかが各所に散らばる面倒臭さもない
DispatchSemaphore使ってsyncDataTaskみたいなのextensionに書く例stackoverflowにあったけど
これでもいいけど他のtask使いたくなったとき、そのtaskのsyncバージョンをまた別に書かないといけないのが面倒臭い
http://stackoverflow.com/a/34308158
dispatchMainはexitの置き場所で困りそう
2つのtask待ち合わせるならどこにexit置くのと考えると問題を先送りしてるだけな気がする
18デフォルトの名無しさん (ワッチョイ eb46-ykbm)
2017/02/20(月) 23:34:47.43ID:6K9wp/bS019デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
2017/02/21(火) 07:58:47.31ID:eTJT09tJ0 dispatchMain
> Applications ... must not call dispatchMain()
RunLoop
> You should never try to call the methods of an RunLoop object running in a different thread
なんでリファレンスで危ないから使うなって言われてるものを優先して挙げるのか
DispatchWorkItemのサンプルはよ、一番これが「モダン」だと思う
> Applications ... must not call dispatchMain()
RunLoop
> You should never try to call the methods of an RunLoop object running in a different thread
なんでリファレンスで危ないから使うなって言われてるものを優先して挙げるのか
DispatchWorkItemのサンプルはよ、一番これが「モダン」だと思う
20デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/21(火) 08:14:40.71ID:3Vda5W860 >>19
次の3つのGlobal関数内では使ってはイケナイって書いてある。
今回はOK!
UIApplicationMain(_:_:_:_:) (iOS), NSApplicationMain(_:_:) (macOS), or CFRunLoopRun()
次の3つのGlobal関数内では使ってはイケナイって書いてある。
今回はOK!
UIApplicationMain(_:_:_:_:) (iOS), NSApplicationMain(_:_:) (macOS), or CFRunLoopRun()
21デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/21(火) 08:17:33.97ID:3Vda5W86022デフォルトの名無しさん (スップ Sd7f-MFap)
2017/02/21(火) 08:36:49.36ID:EuRy1Wt8d23デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/21(火) 08:42:18.14ID:4QHQyE1ya それが顔文字に見えるなら、お前そうとう病んでるよ
24デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/21(火) 08:47:28.88ID:3Vda5W86025デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/21(火) 08:49:53.12ID:3Vda5W860 セレクタを記述できないと、Notificationを扱う事ができないので、mustな!
26デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/21(火) 08:53:52.12ID:3Vda5W860 Overload resolver(メソッド多重定義解決)はセレクタ情報を手掛かりに、どのメソッドを呼び出すのか?解決する訳だ。
参照:C++ FAQ
参照:C++ FAQ
27デフォルトの名無しさん (エムゾネ FF7f-MFap)
2017/02/21(火) 08:59:24.03ID:arZsGKioF Objective-Cのときってもっとわかりやすい表記だったような
28デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
2017/02/21(火) 09:23:38.61ID:eTJT09tJ0 ObjCの表記を覚えてない => ObjC使ってない
Swiftの表記を自然に読み取れない => Swift使ってない
うーん、このどうしようもない感
Swiftの表記を自然に読み取れない => Swift使ってない
うーん、このどうしようもない感
29デフォルトの名無しさん (フリッテル MMff-NqfV)
2017/02/21(火) 09:35:17.94ID:HF5TYBzbM swiftってiosアプリ書く以外であえて選んでるって人いるの?
30デフォルトの名無しさん (スプッッ Sd7f-PET2)
2017/02/21(火) 09:40:38.00ID:wDwSQYHdd macアプリ…
31デフォルトの名無しさん (スッップ Sd7f-yXFx)
2017/02/21(火) 12:37:07.59ID:01HI8sK+d >>29
IBM.........
IBM.........
32デフォルトの名無しさん (ササクッテロラ Sp9f-ykbm)
2017/02/21(火) 12:40:37.23ID:HroqGx6Ep >>29
SUZUKI.........
SUZUKI.........
33デフォルトの名無しさん (ブーイモ MM7f-v1tk)
2017/02/21(火) 13:29:54.58ID:h4Mc9UUPM >>19
current threadのrunloopインスタンスのmethodを呼び出しているのだからまったく問題ないだろ…
current threadのrunloopインスタンスのmethodを呼び出しているのだからまったく問題ないだろ…
34デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/21(火) 16:29:44.15ID:m+/zu2/z035デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)
2017/02/21(火) 16:47:25.83ID:IX256A9wp36デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/21(火) 18:04:35.19ID:aFqTV30T0 特に無限ループがダサいとは思わないけどな
少し低いレイヤーを意識したコードではあると思うけど
少し低いレイヤーを意識したコードではあると思うけど
37デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/21(火) 18:08:20.55ID:aFqTV30T0 DispatchWorkItem版
if #availableはguard文だとコンパイル通らなかった‥
if #available(OSX 10.10, *) {
let queue = DispatchQueue(label: "queue", attributes: .concurrent)
let printTask = DispatchWorkItem { print("dic = ¥(dic)") }
let url = URL(string: "http://date.jsontest.com/")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let jsonData = data {
printJSON(jsonData)
queue.async(execute: printTask)
}
}
task.resume()
printTask.wait()
exit(EXIT_SUCCESS)
} else {
print("require OSX10.10 or newer"); exit(EXIT_FAILURE);
}
if #availableはguard文だとコンパイル通らなかった‥
if #available(OSX 10.10, *) {
let queue = DispatchQueue(label: "queue", attributes: .concurrent)
let printTask = DispatchWorkItem { print("dic = ¥(dic)") }
let url = URL(string: "http://date.jsontest.com/")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let jsonData = data {
printJSON(jsonData)
queue.async(execute: printTask)
}
}
task.resume()
printTask.wait()
exit(EXIT_SUCCESS)
} else {
print("require OSX10.10 or newer"); exit(EXIT_FAILURE);
}
38デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
2017/02/21(火) 18:37:29.74ID:m+/zu2/z0 スクリプトモードでメインスレッドでメインキューを待つ方法と、URLSessionで同期的に実行する方法で問題をごっちゃにしてたな
>>5 の質問の本意がどっちにあるのかわからないけど、「スクリプトモードでメインスレッドでメインキューを待つ方法」ならRunLoopを回すのが正しい回答なはず
単純化すれば
DispatchQueue.main.async {
sleep(1)
print("Hello")
}
print("Done")
これでスクリプトモードでどうやって "Hello" を表示させるか
できれば"Hello"→"Done"の順序で
この場合DispatchSemaphore等ではwaitした時点でメインキューに入れた非同期タスクに永久にたどり着けないのでwaitで固まるので誤り
待ってるのも非同期タスクも両方メインだから
let sema = DispatchSemaphore(value: 0)
DispatchQueue.main.async {
sleep(1)
print("Hello")
sema.signal()
}
sema.wait()
print("Done")
>>5 の質問の本意がどっちにあるのかわからないけど、「スクリプトモードでメインスレッドでメインキューを待つ方法」ならRunLoopを回すのが正しい回答なはず
単純化すれば
DispatchQueue.main.async {
sleep(1)
print("Hello")
}
print("Done")
これでスクリプトモードでどうやって "Hello" を表示させるか
できれば"Hello"→"Done"の順序で
この場合DispatchSemaphore等ではwaitした時点でメインキューに入れた非同期タスクに永久にたどり着けないのでwaitで固まるので誤り
待ってるのも非同期タスクも両方メインだから
let sema = DispatchSemaphore(value: 0)
DispatchQueue.main.async {
sleep(1)
print("Hello")
sema.signal()
}
sema.wait()
print("Done")
39デフォルトの名無しさん (ササクッテロリ Sp9f-31xI)
2017/02/21(火) 19:10:04.95ID:IX256A9wp >>36
ttp://swift.sandbox.bluemix.net/#/repl/58ac0f8c861c326c636916bf
一般常識として無限ループの状態監視するやつは死ねと思う
SIGNALが使えないほどの低レイヤーでそれが必要だとしてもsleepは入れる
ループ中にsleep入れないなら死ぬし、sleep入れるなら本末転倒だよねー
ttp://swift.sandbox.bluemix.net/#/repl/58ac0f8c861c326c636916bf
一般常識として無限ループの状態監視するやつは死ねと思う
SIGNALが使えないほどの低レイヤーでそれが必要だとしてもsleepは入れる
ループ中にsleep入れないなら死ぬし、sleep入れるなら本末転倒だよねー
40デフォルトの名無しさん (ブーイモ MM7f-yXFx)
2017/02/21(火) 19:13:38.94ID:lTdRkQq/M ビジーループと無限ループをごっちゃにして死ねとかアホか
41デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)
2017/02/21(火) 19:17:25.53ID:IX256A9wp いや、だからsleep入れろって言ってるだろw
42デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/21(火) 20:44:27.44ID:5UhBXSO50 RunLoopのSwift実装読んだけど酷過ぎじゃね
returnAfterSourceHandledを強制trueにして
ブロッキングキューの利点ぶち壊すとか意味分からん
別実装で書いてみた
http://swift.sandbox.bluemix.net/#/repl/58ac26055d046936d91eba1c
returnAfterSourceHandledを強制trueにして
ブロッキングキューの利点ぶち壊すとか意味分からん
別実装で書いてみた
http://swift.sandbox.bluemix.net/#/repl/58ac26055d046936d91eba1c
43デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/21(火) 21:21:46.46ID:5UhBXSO50 CFRunLoopRunInMode(,,false)がポンコツでなければ
キューが空の間はセマフォのwait等と同様に
待機状態になるはずでCPUは消費しない
キューが空の間はセマフォのwait等と同様に
待機状態になるはずでCPUは消費しない
44デフォルトの名無しさん (ワッチョイ 9fc0-31xI)
2017/02/21(火) 21:33:17.76ID:jelvKUPR0 PR出してみたら?コードがあるなら前スレのAffineTransformよりはマシなレビューが期待できそう
45デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/21(火) 21:58:36.49ID:5UhBXSO50 出すとしたら
https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/NSRunLoop.swift#L149
> CFRunLoopRunInMode(modeArg, ti, true)
ここの第3引数も指定出来て,
CFRunLoopRunInModeの戻り値をenumに入れ替えて返す
runのオーバーロード追加を要求するくらいか
とはいえコンソール系でのテスト実行以外では
UIApplicationMain等に任せる所だし放置になるのでは
https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/NSRunLoop.swift#L149
> CFRunLoopRunInMode(modeArg, ti, true)
ここの第3引数も指定出来て,
CFRunLoopRunInModeの戻り値をenumに入れ替えて返す
runのオーバーロード追加を要求するくらいか
とはいえコンソール系でのテスト実行以外では
UIApplicationMain等に任せる所だし放置になるのでは
46デフォルトの名無しさん (ワッチョイ 9fc0-31xI)
2017/02/21(火) 22:21:50.16ID:jelvKUPR0 ならいらねーなw
47デフォルトの名無しさん (ワッチョイ eb46-ykbm)
2017/02/22(水) 08:12:05.22ID:l4ZVTbpn0 お疲れ様でした
48デフォルトの名無しさん (スッップ Sd7f-yXFx)
2017/02/22(水) 12:33:22.98ID:pE0UWB3Fd >>5
質問と直接関係ないけど
この文脈でのsleep()はc言語の、つまりPOSIX APIのsleep()が呼び出されると思うんだよな
無自覚にインラインCになっちゃうって、便利なのか?、危険なのか?
質問と直接関係ないけど
この文脈でのsleep()はc言語の、つまりPOSIX APIのsleep()が呼び出されると思うんだよな
無自覚にインラインCになっちゃうって、便利なのか?、危険なのか?
49デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/22(水) 12:36:17.73ID:XTvCwCCI050デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/22(水) 12:38:33.65ID:XTvCwCCI0 import class Foundation.Thread
RxSwiftのソース眺めてたら、見たことの無いimport文発見。
これに関してどっかに記述あるかなぁ?
RxSwiftのソース眺めてたら、見たことの無いimport文発見。
これに関してどっかに記述あるかなぁ?
51デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/22(水) 12:40:01.01ID:XTvCwCCI0 import class文を使えばコンパイル時間を短縮できたり、バイナリサイズを小さくできるのかな?
52デフォルトの名無しさん (ササクッテロリ Sp9f-31xI)
2017/02/22(水) 12:58:12.17ID:3150ESkMp import Foundation // 42500 byte
import Foundation.NSData // 42484 byte
import class Foundation.NSData // 42500 byte
let data = NSData()
swiftc -O でビルド、なんで減るんだよwww
ABI安定(予定)の4で変わるだろうし、あんま意味ないな
import Foundation.NSData // 42484 byte
import class Foundation.NSData // 42500 byte
let data = NSData()
swiftc -O でビルド、なんで減るんだよwww
ABI安定(予定)の4で変わるだろうし、あんま意味ないな
53デフォルトの名無しさん (JP 0H1f-vlft)
2017/02/22(水) 13:12:01.50ID:T1tKwjPzH 名前空間の汚染だけじゃないの
でも種別を明記するのは定義側がうっかり変更されたときにすぐ気づくためかな
でも種別を明記するのは定義側がうっかり変更されたときにすぐ気づくためかな
54デフォルトの名無しさん (ワッチョイ 5fc9-flZS)
2017/02/22(水) 14:14:24.74ID:IUFwtIZk0 ABI安定は延期されたけど
55デフォルトの名無しさん (ササクッテロリ Sp9f-31xI)
2017/02/22(水) 14:35:19.19ID:3150ESkMp Evolution/README読む限りだとSwift 4 Stage 1に入ってるぞ?MLでも特に上がってないよな
今更リスケしても気にしないけども
それはそれとして、Stage 2が切られてStage1/2にソース互換性ないよってのに笑った
もうSwift5としてリリースすればいいじゃんよ...
今更リスケしても気にしないけども
それはそれとして、Stage 2が切られてStage1/2にソース互換性ないよってのに笑った
もうSwift5としてリリースすればいいじゃんよ...
56デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/22(水) 14:40:41.89ID:XTvCwCCI0 >>51
>import class
GRAMMAR OF AN IMPORT DECLARATION
import import kind module.symbol name
import module.submodule
ちゃんと書いてあるのね
>import class
GRAMMAR OF AN IMPORT DECLARATION
import import kind module.symbol name
import module.submodule
ちゃんと書いてあるのね
57デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
2017/02/22(水) 14:52:08.92ID:atJ0ccfza お前ら、今日学校は休みなの?
58デフォルトの名無しさん (JP 0H1f-vlft)
2017/02/22(水) 16:12:50.34ID:T1tKwjPzH 春休みだよ
59デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/22(水) 21:15:19.95ID:2Tf2dKVi060デフォルトの名無しさん (スップ Sd7f-6x/Q)
2017/02/22(水) 21:23:54.82ID:SjZ14kj8d >>59
カキコって何?
カキコって何?
61デフォルトの名無しさん (JP 0H1f-vlft)
2017/02/22(水) 21:28:38.28ID:T1tKwjPzH 夏期講習だよ
62デフォルトの名無しさん (ワッチョイ 5f30-eq+O)
2017/02/22(水) 21:29:18.39ID:FvFs5ugG0 生みの親が辞めた言語にしがみついてる人達のスレはここですか?
63デフォルトの名無しさん (JP 0H1f-vlft)
2017/02/22(水) 22:33:30.18ID:T1tKwjPzH あきらめたら試合終了だよ
64デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)
2017/02/22(水) 22:34:36.26ID:3150ESkMp カキコって何年ぶりに見ただろうか
おっちゃん、ちょっと感慨深いぜ
おっちゃん、ちょっと感慨深いぜ
65デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
2017/02/22(水) 22:49:26.78ID:TTVI91Rf066デフォルトの名無しさん (ワッチョイ 2746-LZzl)
2017/02/23(木) 08:06:48.33ID:RSteN8D40 パピコはまだみる
67デフォルトの名無しさん (スプッッ Sd4a-N8zA)
2017/02/23(木) 08:18:54.84ID:ft7494bRd 初カキコ、ドモッ…
だっけ?
だっけ?
68デフォルトの名無しさん (ワッチョイ 533c-JtgB)
2017/02/23(木) 08:23:03.50ID:KoyZyoDT0 今はなんていうんだ?
送信ボタンを押してるとか言えばいいのか?
送信ボタンを押してるとか言えばいいのか?
69デフォルトの名無しさん (ワッチョイ fac0-Cmgt)
2017/02/23(木) 08:59:05.67ID:0TBdMr700 rustライクなメモリ管理は本気だったのか
https://github.com/apple/swift-evolution/blob/master/README.md
まだ正式なプロポーサル上がってないけど、Stage1でABIレベルで仕様入れて、Stage2で文法決定なんかね
https://github.com/apple/swift-evolution/blob/master/README.md
まだ正式なプロポーサル上がってないけど、Stage1でABIレベルで仕様入れて、Stage2で文法決定なんかね
70デフォルトの名無しさん (ワッチョイ ea32-sTLI)
2017/02/23(木) 10:46:16.10ID:ohiXm4Od071デフォルトの名無しさん (ササクッテロリ Sp23-Cmgt)
2017/02/23(木) 12:56:53.57ID:dRZrz+vDp shared_ptrを文法糖衣したARC同様に、unique_ptrを文法糖衣したナニカになる予感
それだけならアポーでも出来るだろうし、ObjCへのバックポートも可能だからアリだろ
それだけならアポーでも出来るだろうし、ObjCへのバックポートも可能だからアリだろ
72デフォルトの名無しさん (ブーイモ MMaa-RKLU)
2017/02/23(木) 22:43:45.10ID:YqEjQjyTM 何も書かなくて良いのに糖衣といえるのか
73デフォルトの名無しさん (ワッチョイ bfc9-LZzl)
2017/02/24(金) 09:25:16.26ID:/HtdY5ya0 >>70
Ted KremenekさんがRelease Managerやってるよ。Swift4の。
Ted KremenekさんがRelease Managerやってるよ。Swift4の。
74デフォルトの名無しさん (ワッチョイ 2746-LZzl)
2017/02/25(土) 07:58:58.53ID:5NvJoEP20 至高の言語Swiftはどこまでアップデートが続くのかな
至高中の至高に達するのはいつ?
至高中の至高に達するのはいつ?
75デフォルトの名無しさん (アウアウエー Sa82-LZzl)
2017/02/25(土) 10:16:39.25ID:A9nIMvuga すでに至高の域には達してるだろ
今は最後のピストン運動が激しくなって絶頂に向かってるところだ
今は最後のピストン運動が激しくなって絶頂に向かってるところだ
76デフォルトの名無しさん (ワッチョイ 8a3c-/RgJ)
2017/02/25(土) 12:16:56.70ID:xXEZYycv0 クリスだけ先に抜けちゃったけどな
77デフォルトの名無しさん (ササクッテロリ Sp23-Cmgt)
2017/02/25(土) 12:25:30.42ID:hUBRL+mAp 1年後?のSwift 4 Stage 2で言語仕様の破壊変更加えて
2年後のSwift5でコード下位互換を保証して
4年後のSwift6でコード下位互換をしつつ、文法のブラッシュアップしてようやく至高に至る
そこまでswiftコミュニティが死んでなければだけど、AppleとIBMは諦めろと思う
荒らしに来てる子たちはまだまだ遊べるよ、やったね
2年後のSwift5でコード下位互換を保証して
4年後のSwift6でコード下位互換をしつつ、文法のブラッシュアップしてようやく至高に至る
そこまでswiftコミュニティが死んでなければだけど、AppleとIBMは諦めろと思う
荒らしに来てる子たちはまだまだ遊べるよ、やったね
78デフォルトの名無しさん (ワッチョイ 6a93-LqKA)
2017/02/25(土) 13:12:00.62ID:vyst4/NK0 至高ってどっち向けに至高かで全然違うとは思うが、、、
FortranもCも進化をやめる気が無いのを見ると
いつまでも変化し続けるんだろうね、言語って
COBOLは知らん
c++はもはや俺には理解できない領域まで到達してるが
さらに進化を加速しようとしている
変化速度で至高を目指しているのか?
FortranもCも進化をやめる気が無いのを見ると
いつまでも変化し続けるんだろうね、言語って
COBOLは知らん
c++はもはや俺には理解できない領域まで到達してるが
さらに進化を加速しようとしている
変化速度で至高を目指しているのか?
79デフォルトの名無しさん (ササクッテロラ Sp23-LZzl)
2017/02/25(土) 13:15:45.72ID:9rgS5/VKp >>76
クリストスだけで先に逝っちゃったに空目した
クリストスだけで先に逝っちゃったに空目した
80デフォルトの名無しさん (ワッチョイ 7f5b-JtgB)
2017/02/26(日) 19:53:22.76ID:ywDEPWcp0 WWDC2017まであと3ヶ月ちょっとにまで迫って来た。
Swift3.1ももうそろそろXcode8.3と共に出荷かな!
Swift3.1ももうそろそろXcode8.3と共に出荷かな!
81デフォルトの名無しさん (ワッチョイ 0ac9-Cmgt)
2017/02/27(月) 07:56:29.46ID:JlIWpVbu0 Swift 4 Stage 1 すらWWDCには間に合いそうにないな
言語仕様の破壊はもう気にしてないから、betaやってた頃みたいに半年周期でリリースしてくれよなぁ
言語仕様の破壊はもう気にしてないから、betaやってた頃みたいに半年周期でリリースしてくれよなぁ
82デフォルトの名無しさん (ワッチョイ ea32-sTLI)
2017/02/27(月) 12:43:01.65ID:gJTX31H50 究極の言語たちとの戦いは続く……
83デフォルトの名無しさん (スププ Sdaa-LqKA)
2017/02/27(月) 22:04:34.17ID:S02AV9TBd 至高と究極と最強と最高と極限と元祖と本家で戦うんですね
84デフォルトの名無しさん (ササクッテロラ Sp23-LZzl)
2017/02/27(月) 22:24:59.63ID:duMjIsYep 自ら限界を定めてしまったらそこで発展は終わってしまうからな
85デフォルトの名無しさん (スプッッ Sd4a-tvpq)
2017/02/28(火) 12:37:12.05ID:+hx/19pVd 直感的な文法と安全性を兼ね備えたパーフェクト言語のスレはここですか
86デフォルトの名無しさん (スプッッ Sd4a-moPN)
2017/02/28(火) 12:39:25.27ID:rcWZYEudd クラスの配列のディープコピーのやり方を教えてちょんまげ。
助けて太い人っ!
助けて太い人っ!
87デフォルトの名無しさん (ササクッテロラ Sp23-LZzl)
2017/02/28(火) 13:13:31.25ID:KiqJd28Qp 敬虔にググりたまへ
さすれば汝に福音が齎されるであろう
アーメン
さすれば汝に福音が齎されるであろう
アーメン
88デフォルトの名無しさん (ワッチョイ bb7b-Cmgt)
2017/02/28(火) 14:31:53.07ID:ydx77xTP0 ここで文字列の扱いを議論してた荒らしがrustスレに行って暇になったなぁ
文法の固定されたrustより、文法があと5年は変わり続けることが約束されたswiftの方が面白いのに...
三項演算子とか{}ブロックとか、基礎的な文法はswiftならまだまだ変わりうるぜ?
文法の固定されたrustより、文法があと5年は変わり続けることが約束されたswiftの方が面白いのに...
三項演算子とか{}ブロックとか、基礎的な文法はswiftならまだまだ変わりうるぜ?
89デフォルトの名無しさん (スップ Sd4a-tvpq)
2017/02/28(火) 17:06:29.89ID:XVJCzCfXd さすが至高の言語swift
90デフォルトの名無しさん (ササクッテロリ Sp23-cghh)
2017/03/01(水) 08:24:41.29ID:8bxhIAJup91デフォルトの名無しさん (ワッチョイ 9f93-prdN)
2017/03/04(土) 06:31:40.70ID:kx5I/idI0 コードガールコレクションはまだか?
92デフォルトの名無しさん (ワッチョイ bb46-3Y4X)
2017/03/04(土) 07:14:04.97ID:WzJG/JYs0 超絶至高言語Swift
93デフォルトの名無しさん (アウアウオー Sabf-0QZk)
2017/03/05(日) 10:30:38.29ID:Nn8WRk/za var a = 0
var b = 0
var array = [a, b]
a = 1
array[0] ←これを1にしたい
array[1] = 10
b ←これを10にしたい
どうすればいい?
var b = 0
var array = [a, b]
a = 1
array[0] ←これを1にしたい
array[1] = 10
b ←これを10にしたい
どうすればいい?
94デフォルトの名無しさん (アウアウエー Sabf-pTz+)
2017/03/05(日) 10:33:08.38ID:4SdvbjFEa そんなことできる言語はないと思うけど
なんでそんなことしたいの?
なんでそんなことしたいの?
95デフォルトの名無しさん (スップ Sd3f-3Y4X)
2017/03/05(日) 10:49:38.94ID:oTFtJ+xbd >>93
ちょっと何言ってっかわかんないっすね
ちょっと何言ってっかわかんないっすね
96デフォルトの名無しさん (アウアウオー Sabf-0QZk)
2017/03/05(日) 11:01:41.19ID:Nn8WRk/za 複数のIntやCGFloat(クラスではない型)を、個別でアクセスと、配列化してインデックスでアクセスを出来るようにして、状況に応じて切り替えたいのです。C言語ならポインタの配列にすればよいのですが、Swiftでどうやるのかなと思いまして。
int a = 0;
int b = 0;
int *arr[2];
arr[0] = &a;
arr[1] = &b;
a = 1;
printf("%d¥n", *arr[0]); ←1が出る
*arr[1] = 10;
printf("%d¥n", b); ←10が出る
int a = 0;
int b = 0;
int *arr[2];
arr[0] = &a;
arr[1] = &b;
a = 1;
printf("%d¥n", *arr[0]); ←1が出る
*arr[1] = 10;
printf("%d¥n", b); ←10が出る
97デフォルトの名無しさん (アウアウエー Sabf-pTz+)
2017/03/05(日) 11:18:30.10ID:4SdvbjFEa なんだ、ポインター使いたいのか
UnsafeMutablePointer
とかググると使いかた出てくるよ
UnsafeMutablePointer
とかググると使いかた出てくるよ
98デフォルトの名無しさん (アウアウエー Sabf-pTz+)
2017/03/05(日) 11:21:57.99ID:4SdvbjFEa こんな感じで
typealias IntPointer = UnsafeMutablePointer<Int>
var a_ptr = IntPointer.allocate(capacity: 1)
var b_ptr = IntPointer.allocate(capacity: 1)
a_ptr.pointee = 0
b_ptr.pointee = 0
var array = [a_ptr, b_ptr]
a_ptr.pointee = 1
print(array[0].pointee) ←1が出る
array[1].pointee = 10
print(b_ptr.pointee) ← 10が出る
a_ptr.deallocate(capacity: 1)
b_ptr.deallocate(capacity: 1)
typealias IntPointer = UnsafeMutablePointer<Int>
var a_ptr = IntPointer.allocate(capacity: 1)
var b_ptr = IntPointer.allocate(capacity: 1)
a_ptr.pointee = 0
b_ptr.pointee = 0
var array = [a_ptr, b_ptr]
a_ptr.pointee = 1
print(array[0].pointee) ←1が出る
array[1].pointee = 10
print(b_ptr.pointee) ← 10が出る
a_ptr.deallocate(capacity: 1)
b_ptr.deallocate(capacity: 1)
99デフォルトの名無しさん (アウアウエー Sabf-pTz+)
2017/03/05(日) 11:28:57.98ID:4SdvbjFEa Alloc/Dealloc 使わないバターン
typealias IntPointer = UnsafeMutablePointer<Int>
var a = 0
var b = 0
var a_ptr = IntPointer(&a)
var b_ptr = IntPointer(&b)
var array = [a_ptr, b_ptr]
a_ptr.pointee = 1
print(array[0].pointee) ←1が出る
array[1].pointee = 10
print(b_ptr.pointee) ←10が出る
typealias IntPointer = UnsafeMutablePointer<Int>
var a = 0
var b = 0
var a_ptr = IntPointer(&a)
var b_ptr = IntPointer(&b)
var array = [a_ptr, b_ptr]
a_ptr.pointee = 1
print(array[0].pointee) ←1が出る
array[1].pointee = 10
print(b_ptr.pointee) ←10が出る
100デフォルトの名無しさん (アウアウオー Sabf-0QZk)
2017/03/05(日) 11:44:51.09ID:Nn8WRk/za ああ、>>99だと、ほぼそのまま置き換えできますね。ありがとうございます。
101デフォルトの名無しさん (アウアウオー Sabf-0QZk)
2017/03/05(日) 12:06:49.29ID:Nn8WRk/za pointeeを隠蔽してこうなりました。
struct IntPointerStruct {
var a_ptr: IntPointer
var b_ptr: IntPointer
subscript(index: Int) -> Int {
get {
switch index {
case 0: return a_ptr.pointee
case 1: return b_ptr.pointee
default: return 0
}}
set {
switch index {
case 0: a_ptr.pointee = newValue
case 1: b_ptr.pointee = newValue
default: break
}}}}
var a = 0
var b = 0
var array = IntPointerStruct(a_ptr: &a, b_ptr: &b)
a = 1
print(array[0]) ←1が出ます!!
array[1] = 10
print(b) ←10が出ます!!
これにするか >>99にするか、作りながら判断します。ありがとうございました。
struct IntPointerStruct {
var a_ptr: IntPointer
var b_ptr: IntPointer
subscript(index: Int) -> Int {
get {
switch index {
case 0: return a_ptr.pointee
case 1: return b_ptr.pointee
default: return 0
}}
set {
switch index {
case 0: a_ptr.pointee = newValue
case 1: b_ptr.pointee = newValue
default: break
}}}}
var a = 0
var b = 0
var array = IntPointerStruct(a_ptr: &a, b_ptr: &b)
a = 1
print(array[0]) ←1が出ます!!
array[1] = 10
print(b) ←10が出ます!!
これにするか >>99にするか、作りながら判断します。ありがとうございました。
102デフォルトの名無しさん (ワッチョイ bb46-pTz+)
2017/03/05(日) 12:16:18.70ID:EQCsqksH0103デフォルトの名無しさん (ワッチョイ db5b-0QZk)
2017/03/05(日) 12:28:46.65ID:BaPS9EAx0 >>99
素晴らしい!
import Foundation
var a = NSNumber(value: 1)
var b = NSNumber(value: 2)
var ar = NSMutableArray()
ar.add(a)//, b])//(array: [a, b])
ar.add(b)//, b])//(array: [a, b])
a = 3
print(ar)
print(a)
NSNumber使えばできるのか?と思いきや、失敗!
素晴らしい!
import Foundation
var a = NSNumber(value: 1)
var b = NSNumber(value: 2)
var ar = NSMutableArray()
ar.add(a)//, b])//(array: [a, b])
ar.add(b)//, b])//(array: [a, b])
a = 3
print(ar)
print(a)
NSNumber使えばできるのか?と思いきや、失敗!
104デフォルトの名無しさん (ワッチョイ bb46-pTz+)
2017/03/05(日) 13:34:52.66ID:EQCsqksH0 Swift最高!!!!!!!!!
105デフォルトの名無しさん (ササクッテロラ Spef-NRhz)
2017/03/05(日) 13:55:13.01ID:Awv6PdXpp UnsafePointer周りの公開IFは2.0から3.0までですら二転三転したから信用して使わない方が良いぞ、多分また変わる
Xcodeの自動コンバートでサポートしきれない変更だったから毎度手間だった
その覚悟をもって遊ぶなら楽しいオモチャではある
すごく日曜プログラマ向け
Xcodeの自動コンバートでサポートしきれない変更だったから毎度手間だった
その覚悟をもって遊ぶなら楽しいオモチャではある
すごく日曜プログラマ向け
106デフォルトの名無しさん (スップ Sd3f-3Y4X)
2017/03/05(日) 14:19:22.96ID:xyCUFaW+d そもそもSwift自体が意識高い日曜プログラマー向けなんだから気にしない気にしない
107デフォルトの名無しさん (ワッチョイ 1f30-BJNc)
2017/03/05(日) 14:37:19.10ID:rxgD3rR00108デフォルトの名無しさん (アウアウエー Sabf-pTz+)
2017/03/05(日) 14:56:08.46ID:X99UGKjOa どの言語もメジャーバージョンアップ時には完全後方互換じゃない気がするが
ただ、頻度が少ないだけで
ただ、頻度が少ないだけで
109デフォルトの名無しさん (ワッチョイ 0fba-HqPE)
2017/03/05(日) 14:59:33.17ID:k0Z4Rrjg0 完全広報五感の縛りは進化を妨げる
ツールでコンバートさせるswiftとアプローチは正解
さすが至高の言語swich
ツールでコンバートさせるswiftとアプローチは正解
さすが至高の言語swich
110デフォルトの名無しさん (ササクッテロラ Spef-NRhz)
2017/03/05(日) 16:21:43.23ID:Awv6PdXpp はっはっは
マイナーバージョンアップで互換性を壊すのがswiftだ
そんじゃそこらの言語と一緒にして貰っちゃ困るぜ?
マイナーバージョンアップで互換性を壊すのがswiftだ
そんじゃそこらの言語と一緒にして貰っちゃ困るぜ?
111デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
2017/03/05(日) 17:00:49.02ID:f1XixyjT0 ExpressibleByIntegerLiteral使えばもうちょいシンプルにできる?
112デフォルトの名無しさん (ワッチョイ dbc9-zofg)
2017/03/05(日) 23:02:32.93ID:nindsAFW0 >>110
マイナンバーにみえた
マイナンバーにみえた
113デフォルトの名無しさん (スプッッ Sd3f-n2KM)
2017/03/06(月) 12:37:12.05ID:VBrHzi13d114デフォルトの名無しさん (ワッチョイ 0f42-m4jB)
2017/03/08(水) 00:11:43.50ID:WpsGt1AL0 正直Swift熱は若干冷めてきたように思う
サーバーサイドSwiftとかもちっと頑張ってくれんかなあ
サーバーサイドSwiftとかもちっと頑張ってくれんかなあ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★7 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 麻婆豆腐食べてる
- 【安倍の実】大誤算!日本企業、円安で苦しむ、、適正為替より大幅に乖離。助けて高市 [219241683]
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- 👊😅👊三☁😶‍🌫三⛅🏡
- コーヒー、来年3月から30パーセント値上げへ [709039863]
