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:ChbPWtRt02デフォルトの名無しさん (ワッチョイ 7ba1-vagz)
2017/02/20(月) 11:06:31.94ID:Gb72M66o0 < `∀´>ニダー
3デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
2017/02/20(月) 13:14:50.34ID:mI2RJMjC0 さて、また荒らしと文字列の扱いについて談笑しようじゃないか
4デフォルトの名無しさん (スプッッ Sd7f-PET2)
2017/02/20(月) 13:18:27.57ID:ij1Njg09d 極上の言語のスレはここかな?
5デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
2017/02/20(月) 16:05:25.21ID:IDSTiL890 WebAPIを叩く最小限のコードを書いています。
Terminal.Appで実行したところ、動くには動くのですが、最後のsleep文をコメントアウトすると、結果が表示されません。
sleep文はダサいので、うまい具合にbackgroundで実行中のThreadを待ち合わせる方法は無いでしょうか?なお、Swift3.0.2です。
import Foundation
var dic: Any = ["": ""]
func printJSON(_ data: Data) {
do {
let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
dic = json
print(json)
} catch {
print("parse error!")
}
}
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)
DispatchQueue.main.async(execute: { print("dic = ¥(dic)") })
//mainスレッドを捕まえて実行
}
}
task.resume()
print("OK")
sleep(1) // 1秒待つ
Terminal.Appで実行したところ、動くには動くのですが、最後のsleep文をコメントアウトすると、結果が表示されません。
sleep文はダサいので、うまい具合にbackgroundで実行中のThreadを待ち合わせる方法は無いでしょうか?なお、Swift3.0.2です。
import Foundation
var dic: Any = ["": ""]
func printJSON(_ data: Data) {
do {
let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
dic = json
print(json)
} catch {
print("parse error!")
}
}
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)
DispatchQueue.main.async(execute: { print("dic = ¥(dic)") })
//mainスレッドを捕まえて実行
}
}
task.resume()
print("OK")
sleep(1) // 1秒待つ
6デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/20(月) 17:57:22.66ID:E/pOlJmJ0 Dispatch Group使ってwaitするか
DispatchWorkItem使ってwaitするか
かな
DispatchWorkItem使ってwaitするか
かな
7デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
2017/02/20(月) 18:12:47.50ID:mI2RJMjC0 NSConditionでの実装例
ttp://swift.sandbox.bluemix.net/#/repl/58aab29626c3ba5cbe1d44ee
文字列でなんやかんや話してたエロい人たちがより良い例を出してくれると信じてる
ttp://swift.sandbox.bluemix.net/#/repl/58aab29626c3ba5cbe1d44ee
文字列でなんやかんや話してたエロい人たちがより良い例を出してくれると信じてる
8デフォルトの名無しさん (スッップ Sd7f-yXFx)
2017/02/20(月) 20:20:31.52ID:jVgNOv8dd >>5
Sleep()がカッコ悪いのでsyncで呼ぶ
Sleep()がカッコ悪いのでsyncで呼ぶ
9デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/20(月) 21:23:20.98ID:E/pOlJmJ0 let task = URLSession.shared.dataTask(with: url) { data, response, error in
動きがなんかおかしいと思ったら
これcompletionHandler設定できてないような
動きがなんかおかしいと思ったら
これcompletionHandler設定できてないような
10デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/20(月) 21:45:53.42ID:E/pOlJmJ0 最後にdispatchMain()を追加して明示的にexit()すればいいみたい
http://stackoverflow.com/questions/31944011/how-to-prevent-a-command-line-tool-from-exiting-before-asynchronous-operation-co
#! /usr/bin/env swift
import Foundation
var dic: Any = ["": ""]
func printJSON(_ data: Data) {
do {
let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
dic = json
print(json)
} catch {
print("parse error!")
}
}
let url = URL(string: "http://date.jsontest.com/")!
let task = URLSession.shared.dataTask(with: url, completionHandler: { data, response, error in
if let jsonData = data {
printJSON(jsonData)
DispatchQueue.main.async(execute: {print("dic = ¥(dic)"); exit(EXIT_SUCCESS)})
}
})
task.resume()
print("OK")
dispatchMain()
http://stackoverflow.com/questions/31944011/how-to-prevent-a-command-line-tool-from-exiting-before-asynchronous-operation-co
#! /usr/bin/env swift
import Foundation
var dic: Any = ["": ""]
func printJSON(_ data: Data) {
do {
let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
dic = json
print(json)
} catch {
print("parse error!")
}
}
let url = URL(string: "http://date.jsontest.com/")!
let task = URLSession.shared.dataTask(with: url, completionHandler: { data, response, error in
if let jsonData = data {
printJSON(jsonData)
DispatchQueue.main.async(execute: {print("dic = ¥(dic)"); exit(EXIT_SUCCESS)})
}
})
task.resume()
print("OK")
dispatchMain()
11デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
2017/02/20(月) 21:51:31.66ID:E/pOlJmJ0 関係ないけどこの外部ステートへの依存の仕方はちょっと気持ち悪く感じる
var dic: Any = ["": ""]
var dic: Any = ["": ""]
12デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/20(月) 21:53:42.29ID:4Xv+kGUd0 >>9
メソッド引数の最後のclosureは()から出して記述できるんでは?
ただ、
DispatchQueue.main.async(execute: { print("dic = ¥(dic)") })
の部分がPlaygroundでは実行されるのに、terminal.appでは実行されない?
メソッド引数の最後のclosureは()から出して記述できるんでは?
ただ、
DispatchQueue.main.async(execute: { print("dic = ¥(dic)") })
の部分がPlaygroundでは実行されるのに、terminal.appでは実行されない?
13デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
2017/02/20(月) 22:01:34.57ID:4Xv+kGUd014デフォルトの名無しさん (ワッチョイ 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:TTVI91Rf0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 地震 [Hitzeschleier★]
- 【地震】 茨城 栃木 埼玉 千葉 震度4 [KingFisherは魚じゃないよ★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★6 [Hitzeschleier★]
- ( ´ん`)地震…? [399583221]
- ジャップ、タイ🇹🇭で宿泊施設備え付けのスピーカーを盗み取る 元自衛官疑惑も [165981677]
- ほんこん さん「尖閣諸島も竹島も北方領土も、全て日本の領土だ!」 [201193242]
- 🖐( -᷄ὢ)俺には>>2の>>3を自由に扱える権利がある……
- 地震
- 地震地震うっせーーーんだよゴミ共wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
