Swift part10at TECH
Swift part10 - 暇つぶし2ch2:デフォルトの名無しさん (ワッチョイ 7ba1-vagz)
17/02/20 11:06:31.94 Gb72M66o0.net
< `∀´>ニダー

3:デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
17/02/20 13:14:50.34 mI2RJMjC0.net
さて、また荒らしと文字列の扱いについて談笑しようじゃないか

4:デフォルトの名無しさん (スプッッ Sd7f-PET2)
17/02/20 13:18:27.57 ij1Njg09d.net
極上の言語のスレはここかな?

5:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/20 16:05:25.21 IDSTiL890.net
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: "URLリンク(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)
17/02/20 17:57:22.66 E/pOlJmJ0.net
Dispatch Group使ってwaitするか
DispatchWorkItem使ってwaitするか
かな

7:デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
17/02/20 18:12:47.50 mI2RJMjC0.net
NSConditionでの実装例
URLリンク(swift.sandbox.bluemix.net)
文字列でなんやかんや話してたエロい人たちがより良い例を出してくれると信じてる

8:デフォルトの名無しさん (スッップ Sd7f-yXFx)
17/02/20 20:20:31.52 jVgNOv8dd.net
>>5
Sleep()がカッコ悪いのでsyncで呼ぶ

9:デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
17/02/20 21:23:20.98 E/pOlJmJ0.net
let task = URLSession.shared.dataTask(with: url) { data, response, error in
動きがなんかおかしいと思ったら
これcompletionHandler設定できてないような

10:デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
17/02/20 21:45:53.42 E/pOlJmJ0.net
最後にdispatchMain()を追加して明示的にexit()すればいいみたい
URLリンク(stackoverflow.com)
#! /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: "URLリンク(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)
17/02/20 21:51:31.66 E/pOlJmJ0.net
関係ないけどこの外部ステートへの依存の仕方はちょっと気持ち悪く感じる
var dic: Any = ["": ""]

12:デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
17/02/20 21:53:42.29 4Xv+kGUd0.net
>>9
メソッド引数の最後のclosureは()から出して記述できるんでは?
ただ、
DispatchQueue.main.async(execute: { print("dic = ¥(dic)") })
の部分がPlaygroundでは実行されるのに、terminal.appでは実行されない?

13:デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
17/02/20 22:01:34.57 4Xv+kGUd0.net
>>10
素晴らしい!
dispatchMain()
このグローバル関数が何をしてるのか?ようわからんけど。

14:デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
17/02/20 22:05:11.29 E/pOlJmJ0.net
>>12
あらまほんとだ
ラベル関係なく使えるのね

15:デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
17/02/20 22:12:48.75 4Xv+kGUd0.net
Executes blocks submitted to the main queue.
って事は、
DispatchQueue.main.async(execute: { print("dic = ¥(dic)") })
を実行しているみたいだ。dispatchMain()は。
exit(EXIT_SUCCESS)が無いと、dispatchMain()は永遠に実行待ちするみたい。
しょうが無いので、^Z + kill %1した。

16:デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
17/02/20 22:14:47.48 SiY39E3I0.net
while task.state == .running {
RunLoop.current.run(mode: .commonModes, before: .distantFuture)
}

17:デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
17/02/20 23:26:54.19 SiY39E3I0.net
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バージョンをまた別に書かないといけないのが面倒臭い
URLリンク(stackoverflow.com)
dispatchMainはexitの置き場所で困りそう
2つのtask待ち合わせるならどこにexit置くのと考えると問題を先送りしてるだけな気がする

18:デフォルトの名無しさん (ワッチョイ eb46-ykbm)
17/02/20 23:34:47.43 6K9wp/bS0.net
>>4
そうそう
プログラミング言語史上類を見ない最強にエレガントでモダンな至高言語Swiftのスレだよ
Enjoy!

19:デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
17/02/21 07:58:47.31 eTJT09tJ0.net
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のサンプルはよ、一番これが「モダン」だと思う

20:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/21 08:14:40.71 3Vda5W860.net
>>19
次の3つのGlobal関数内では使ってはイケナイって書いてある。
今回はOK!
UIApplicationMain(_:_:_:_:) (iOS), NSApplicationMain(_:_:) (macOS), or CFRunLoopRun()

21:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/21 08:17:33.97 3Vda5W860.net
>>20
追伸です。
19のコメントは間違ってました。
アプリ内で使うのは良く無いそうです。Terminal.Appで実行する時だけにした方が良いです。

22:デフォルトの名無しさん (スップ Sd7f-MFap)
17/02/21 08:36:49.36 EuRy1Wt8d.net
>>20
その顔文字みたいなのは何なの?...
間違いじゃないなら可読性絶望的すぎじゃね?

23:デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
17/02/21 08:42:18.14 4QHQyE1ya.net
それが顔文字に見えるなら、お前そうとう病んでるよ

24:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/21 08:47:28.88 3Vda5W860.net
>>22
セレクタでっせ。
メソッド名とラベルから構成される。ラベルが省略されたセレクタもあって、underscoreで省略可を示す訳だ。
C++で言う、シグネチャだわな。

25:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/21 08:49:53.12 3Vda5W860.net
セレクタを記述できないと、Notificationを扱う事ができないので、mustな!

26:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/21 08:53:52.12 3Vda5W860.net
Overload resolver(メソッド多重定義解決)はセレクタ情報を手掛かりに、どのメソッドを呼び出すのか?解決する訳だ。
参照:C++ FAQ

27:デフォルトの名無しさん (エムゾネ FF7f-MFap)
17/02/21 08:59:24.03 arZsGKioF.net
Objective-Cのときってもっとわかりやすい表記だ�


28:チたような



29:デフォルトの名無しさん (ワッチョイ bbbd-ea4t)
17/02/21 09:23:38.61 eTJT09tJ0.net
ObjCの表記を覚えてない => ObjC使ってない
Swiftの表記を自然に読み取れない => Swift使ってない
うーん、このどうしようもない感

30:デフォルトの名無しさん (フリッテル MMff-NqfV)
17/02/21 09:35:17.94 HF5TYBzbM.net
swiftってiosアプリ書く以外であえて選んでるって人いるの?

31:デフォルトの名無しさん (スプッッ Sd7f-PET2)
17/02/21 09:40:38.00 wDwSQYHdd.net
macアプリ…

32:デフォルトの名無しさん (スッップ Sd7f-yXFx)
17/02/21 12:37:07.59 01HI8sK+d.net
>>29
IBM.........

33:デフォルトの名無しさん (ササクッテロラ Sp9f-ykbm)
17/02/21 12:40:37.23 HroqGx6Ep.net
>>29
SUZUKI.........

34:デフォルトの名無しさん (ブーイモ MM7f-v1tk)
17/02/21 13:29:54.58 h4Mc9UUPM.net
>>19
current threadのrunloopインスタンスのmethodを呼び出しているのだからまったく問題ないだろ…

35:デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
17/02/21 16:29:44.15 m+/zu2/z0.net
1日経って思ったけど、 >>17 じゃtaskを待ってはいるけど
completionHandlerを待ってはいないから >>5 への回答には全くなってなかったね
忘れてくれ
completionHandlerに入った時点でtask.stateは.completedだった

36:デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)
17/02/21 16:47:25.83 IX256A9wp.net
>>33
他に適したAPIがある上、while state がsleep 並にダサい
無限ループで状態監視とか日曜プログラマでも回避するコードだ

37:デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
17/02/21 18:04:35.19 aFqTV30T0.net
特に無限ループがダサいとは思わないけどな
少し低いレイヤーを意識したコードではあると思うけど

38:デフォルトの名無しさん (ワッチョイ 5f3c-Scgb)
17/02/21 18:08:20.55 aFqTV30T0.net
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: "URLリンク(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);
}

39:デフォルトの名無しさん (ワッチョイ 5fc9-fFgi)
17/02/21 18:37:29.74 m+/zu2/z0.net
スクリプトモードでメインスレッドでメインキューを待つ方法と、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")

40:デフォルトの名無しさん (ササクッテロリ Sp9f-31xI)
17/02/21 19:10:04.95 IX256A9wp.net
>>36
URLリンク(swift.sandbox.bluemix.net)
一般常識として無限ループの状態監視するやつは死ねと思う
SIGNALが使えないほどの低レイヤーでそれが必要だとしてもsleepは入れる
ループ中にsleep入れないなら死ぬし、sleep入れるなら本末転倒だよねー

41:デフォルトの名無しさん (ブーイモ MM7f-yXFx)
17/02/21 19:13:38.94 lTdRkQq/M.net
ビジーループと無限ループをごっちゃにして死ねとかアホか

42:デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)
17/02/21 19:17:25.53 IX256A9wp.net
いや、だからsleep入れろって言ってるだろw

43:デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
17/02/21 20:44:27.44 5UhBXSO50.net
RunLoopのSwift実装読んだけど酷過ぎじゃね
returnAfterSourceHandledを強制trueにして
ブロッキングキューの利点ぶち壊すとか意味分からん
別実装で書いてみた
URLリンク(swift.sandbox.bluemix.net)

44:デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
17/02/21 21:21:46.46 5UhBXSO50.net
CFRunLoopRunInMode(,,false)がポンコツでなければ
キューが空の間はセマフォのwait等と同様に
待機状態になるはずでCPUは消費しない

45:デフォルトの名無しさん (ワッチョイ 9fc0-31xI)
17/02/21 21:33:17.76 jelvKUPR0.net
PR出してみたら?コードがあるなら前スレのAffineTransformよりはマシなレビューが期待できそう

46:デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
17/02/21 21:58:36.49 5UhBXSO50.net
出すとしたら
URLリンク(github.com)
> CFRunLoopRunInMode(modeArg, ti, true)
ここの第3引数も指定出来て,
CFRunLoopRunInModeの戻り値をenumに入れ替えて返す
runのオーバーロード追加を要求するくらいか
とはいえコンソール系でのテスト実行以外では
UIApplicationMain等に任せる所だし放置になるのでは

47:デフォルトの名無しさん (ワッチョイ 9fc0-31xI)
17/02/21 22:21:50.16 jelvKUPR0.net
ならいらねーなw

48:デフォルトの名無しさん (ワッチョイ eb46-ykbm)
17/02/22 08:12:05.22 l4ZVTbpn0.net
お疲れ様でした

49:デフォルトの名無しさん (スッップ Sd7f-yXFx)
17/02/22 12:33:22.98 pE0UWB3Fd.net
>>5
質問と直接関係ないけど
この文脈でのsleep()はc言語の、つまりPOSIX APIのsleep()が呼び出されると思うんだよな
無自覚にインラインCになっちゃうって、便利なのか?、危険なのか?

50:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/22 12:36:17.73 XTvCwCCI0.net
>>48
Thread Type Method sleep(forTimeInterval:)
こんなのもあるね。秒単位ね。

51:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/22 12:38:33.65 XTvCwCCI0.net
import class Foundation.Thread
RxSwiftのソース眺めてたら、見たことの無いimport文発見。
これに関してどっかに記述あるかなぁ?

52:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/22 12:40:01.01 XTvCwCCI0.net
import class文を使えばコンパイル時間を短縮できたり、バイナリサイズを小さくできるのかな?

53:デフォルトの名無しさん (ササクッテロリ Sp9f-31xI)
17/02/22 12:58:12.17 3150ESkMp.net
import Foundation // 42500 byte
import Foundation.NSData // 42484 byte
import class Foundation.NSData // 42500 byte
let data = NSData()
swiftc -O でビルド、なんで減るんだよwww
ABI安定(予定)の4で変わるだろうし、あんま意味ないな

54:デフォルトの名無しさん (JP 0H1f-vlft)
17/02/22 13:12:01.50 T1tKwjPzH.net
名前空間の汚染だけじゃないの
でも種別を明記するのは定義側がうっかり変更されたときにすぐ気づくためかな

55:デフォルトの名無しさん (ワッチョイ 5fc9-flZS)
17/02/22 14:14:24.74 IUFwtIZk0.net
ABI安定は延期されたけど

56:デフォルトの名無しさん (ササクッテロリ Sp9f-31xI)
17/02/22 14:35:19.19 3150ESkMp.net
Evolution/README読む限りだとSwift 4 Stage 1に入ってるぞ?MLでも特に上がってないよな
今更リスケしても気にしないけども
それはそれとして、Stage 2が切られてStage1/2にソース互換性ないよってのに笑った
もうSwift5としてリリースすればいいじゃんよ...

57:デフォルトの名無しさん (ワッチョイ 8bc9-ykbm)
17/02/22 14:40:41.89 XTvCwCCI0.net
>>51
>import class
G


58:RAMMAR OF AN IMPORT DECLARATION import import kind module.symbol name import module.submodule ちゃんと書いてあるのね



59:デフォルトの名無しさん (アウアウエー Sa7f-ykbm)
17/02/22 14:52:08.92 atJ0ccfza.net
お前ら、今日学校は休みなの?

60:デフォルトの名無しさん (JP 0H1f-vlft)
17/02/22 16:12:50.34 T1tKwjPzH.net
春休みだよ

61:デフォルトの名無しさん (ワッチョイ 8b5b-fFgi)
17/02/22 21:15:19.95 2Tf2dKVi0.net
>>57
俺は職場からカキコしてる。
今はもちろん、自宅で寝る前だけど。

62:デフォルトの名無しさん (スップ Sd7f-6x/Q)
17/02/22 21:23:54.82 SjZ14kj8d.net
>>59
カキコって何?

63:デフォルトの名無しさん (JP 0H1f-vlft)
17/02/22 21:28:38.28 T1tKwjPzH.net
夏期講習だよ

64:デフォルトの名無しさん (ワッチョイ 5f30-eq+O)
17/02/22 21:29:18.39 FvFs5ugG0.net
生みの親が辞めた言語にしがみついてる人達のスレはここですか?

65:デフォルトの名無しさん (JP 0H1f-vlft)
17/02/22 22:33:30.18 T1tKwjPzH.net
あきらめたら試合終了だよ

66:デフォルトの名無しさん (ササクッテロリ Sp9f-X9Uf)
17/02/22 22:34:36.26 3150ESkMp.net
カキコって何年ぶりに見ただろうか
おっちゃん、ちょっと感慨深いぜ

67:デフォルトの名無しさん (ワッチョイ 3b3c-eq+O)
17/02/22 22:49:26.78 TTVI91Rf0.net
>>62
自動制御を追求しにいった彼が
後に再登場してSwiftをDriftに進化させる王道展開を待つわ

68:デフォルトの名無しさん (ワッチョイ 2746-LZzl)
17/02/23 08:06:48.33 RSteN8D40.net
パピコはまだみる

69:デフォルトの名無しさん (スプッッ Sd4a-N8zA)
17/02/23 08:18:54.84 ft7494bRd.net
初カキコ、ドモッ…
だっけ?

70:デフォルトの名無しさん (ワッチョイ 533c-JtgB)
17/02/23 08:23:03.50 KoyZyoDT0.net
今はなんていうんだ?
送信ボタンを押してるとか言えばいいのか?

71:デフォルトの名無しさん (ワッチョイ fac0-Cmgt)
17/02/23 08:59:05.67 0TBdMr700.net
rustライクなメモリ管理は本気だったのか
URLリンク(github.com)
まだ正式なプロポーサル上がってないけど、Stage1でABIレベルで仕様入れて、Stage2で文法決定なんかね

72:デフォルトの名無しさん (ワッチョイ ea32-sTLI)
17/02/23 10:46:16.10 ohiXm4Od0.net
>>65
Ryzenのように?
でも、彼も自動運転に行っちゃったよ

73:デフォルトの名無しさん (ササクッテロリ Sp23-Cmgt)
17/02/23 12:56:53.57 dRZrz+vDp.net
shared_ptrを文法糖衣したARC同様に、unique_ptrを文法糖衣したナニカになる予感
それだけならアポーでも出来るだろうし、ObjCへのバックポートも可能だからアリだろ

74:デフォルトの名無しさん (ブーイモ MMaa-RKLU)
17/02/23 22:43:45.10 YqEjQjyTM.net
何も書かなくて良いのに糖衣といえるのか

75:デフォルトの名無しさん (ワッチョイ bfc9-LZzl)
17/02/24 09:25:16.26 /HtdY5ya0.net
>>70
Ted KremenekさんがRelease Managerやってるよ。Swift4の。

76:デフォルトの名無しさん (ワッチョイ 2746-LZzl)
17/02/25 07:58:58.53 5NvJoEP20.net
至高の言語Swiftはどこまでアップデートが続くのかな
至高中の至高に達するのはいつ?

77:デフォルトの名無しさん (アウアウエー Sa82-LZzl)
17/02/25 10:16:39.25 A9nIMvuga.net
すでに至高の域には達してるだろ
今は最後のピストン運動が激しくなって絶頂に向かってるところだ

78:デフォルトの名無しさん (ワッチョイ 8a3c-/RgJ)
17/02/25 12:16:56.70 xXEZYycv0.net
クリスだけ先に抜けちゃったけどな

79:デフォルトの名無しさん (ササクッテロリ Sp23-Cmgt)
17/02/25 12:25:30.42 hUBRL+mAp.net
1年後?のSwift 4 Stage 2で言語仕様の破壊変更加えて
2年後のSwift5でコード下位互換を保証して
4年後のSwift6でコード下位互換をしつつ、文法のブラッ�


80:Vュアップしてようやく至高に至る そこまでswiftコミュニティが死んでなければだけど、AppleとIBMは諦めろと思う 荒らしに来てる子たちはまだまだ遊べるよ、やったね



81:デフォルトの名無しさん (ワッチョイ 6a93-LqKA)
17/02/25 13:12:00.62 vyst4/NK0.net
至高ってどっち向けに至高かで全然違うとは思うが、、、
FortranもCも進化をやめる気が無いのを見ると
いつまでも変化し続けるんだろうね、言語って
COBOLは知らん

c++はもはや俺には理解できない領域まで到達してるが
さらに進化を加速しようとしている
変化速度で至高を目指しているのか?

82:デフォルトの名無しさん (ササクッテロラ Sp23-LZzl)
17/02/25 13:15:45.72 9rgS5/VKp.net
>>76
クリストスだけで先に逝っちゃったに空目した

83:デフォルトの名無しさん (ワッチョイ 7f5b-JtgB)
17/02/26 19:53:22.76 ywDEPWcp0.net
WWDC2017まであと3ヶ月ちょっとにまで迫って来た。
Swift3.1ももうそろそろXcode8.3と共に出荷かな!

84:デフォルトの名無しさん (ワッチョイ 0ac9-Cmgt)
17/02/27 07:56:29.46 JlIWpVbu0.net
Swift 4 Stage 1 すらWWDCには間に合いそうにないな
言語仕様の破壊はもう気にしてないから、betaやってた頃みたいに半年周期でリリースしてくれよなぁ

85:デフォルトの名無しさん (ワッチョイ ea32-sTLI)
17/02/27 12:43:01.65 gJTX31H50.net
究極の言語たちとの戦いは続く……

86:デフォルトの名無しさん (スププ Sdaa-LqKA)
17/02/27 22:04:34.17 S02AV9TBd.net
至高と究極と最強と最高と極限と元祖と本家で戦うんですね

87:デフォルトの名無しさん (ササクッテロラ Sp23-LZzl)
17/02/27 22:24:59.63 duMjIsYep.net
自ら限界を定めてしまったらそこで発展は終わってしまうからな

88:デフォルトの名無しさん (スプッッ Sd4a-tvpq)
17/02/28 12:37:12.05 +hx/19pVd.net
直感的な文法と安全性を兼ね備えたパーフェクト言語のスレはここですか

89:デフォルトの名無しさん (スプッッ Sd4a-moPN)
17/02/28 12:39:25.27 rcWZYEudd.net
クラスの配列のディープコピーのやり方を教えてちょんまげ。
助けて太い人っ!

90:デフォルトの名無しさん (ササクッテロラ Sp23-LZzl)
17/02/28 13:13:31.25 KiqJd28Qp.net
敬虔にググりたまへ
さすれば汝に福音が齎されるであろう
アーメン

91:デフォルトの名無しさん (ワッチョイ bb7b-Cmgt)
17/02/28 14:31:53.07 ydx77xTP0.net
ここで文字列の扱いを議論してた荒らしがrustスレに行って暇になったなぁ
文法の固定されたrustより、文法があと5年は変わり続けることが約束されたswiftの方が面白いのに...
三項演算子とか{}ブロックとか、基礎的な文法はswiftならまだまだ変わりうるぜ?

92:デフォルトの名無しさん (スップ Sd4a-tvpq)
17/02/28 17:06:29.89 XVJCzCfXd.net
さすが至高の言語swift

93:デフォルトの名無しさん (ササクッテロリ Sp23-cghh)
17/03/01 08:24:41.29 8bxhIAJup.net
>>89
そんなんじゃ誰も釣れないだろ、、、
もっと頑張れ

94:デフォルトの名無しさん (ワッチョイ 9f93-prdN)
17/03/04 06:31:40.70 kx5I/idI0.net
コードガールコレクションはまだか?

95:デフォルトの名無しさん (ワッチョイ bb46-3Y4X)
17/03/04 07:14:04.97 WzJG/JYs0.net
超絶至高言語Swift

96:デフォルトの名無しさん (アウアウオー Sabf-0QZk)
17/03/05 10:30:38.29 Nn8WRk/za.net
var a = 0
var b = 0
var array = [a, b]
a = 1
array[0] ←これを1にしたい
array[1] = 10
b ←これを10にしたい
どうすればいい?

97:デフォルトの名無しさん (アウアウエー Sabf-pTz+)
17/03/05 10:33:08.38 4SdvbjFEa.net
そんなことできる言語はないと思うけど
なんでそんなことしたいの?

98:デフォルトの名無しさん (スップ Sd3f-3Y4X)
17/03/05 10:49:38.94 oTFtJ+xbd.net
>>93
ちょっと何言ってっかわかんないっすね

99:デフォルトの名無しさん (アウアウオー Sabf-0QZk)
17/03/05 11:01:41.19 Nn8WRk/za.net
複数の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が出る

100:デフォルトの名無しさん (アウアウエー Sabf-pTz+)
17/03/05 11:18:30.10 4SdvbjFEa.net
なんだ、ポインター使いたいのか
UnsafeMutablePointer
とかググると使いかた出てくるよ

101:デフォルトの名無しさん (アウアウエー Sabf-pTz+)
17/03/05 11:21:57.99 4SdvbjFEa.net
こんな感じで
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)

102:デフォルトの名無しさん (アウアウエー Sabf-pTz+)
17/03/05 11:28:57.98 4SdvbjFEa.net
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が出る

103:デフォルトの名無しさん (アウアウオー Sabf-0QZk)
17/03/05 11:44:51.09 Nn8WRk/za.net
ああ、>>99だと、ほぼそのまま置き換えできますね。ありがとうございます。

104:デフォルトの名無しさん (アウアウオー Sabf-0QZk)
17/03/05 12:06:49.29 Nn8WRk/za.net
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にするか、作りながら判断します。ありがとうございました。

105:デフォルトの名無しさん (ワッチョイ bb46-pTz+)
17/03/05 12:16:18.70 EQCsqksH0.net
さすが、>>96のシンプルな表記がクッソごちゃごちゃな表記になるね
でもエレガントなのさ
Swiftだからね

106:デフォルトの名無しさん (ワッチョイ db5b-0QZk)
17/03/05 12:28:46.65 BaPS9EAx0.net
>>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使えばできるのか?と思いきや、失敗!

107:デフォルトの名無しさん (ワッチョイ bb46-pTz+)
17/03/05 13:34:52.66 EQCsqksH0.net
Swift最高!!!!!!!!!

108:デフォルトの名無しさん (ササクッテロラ Spef-NRhz)
17/03/05 13:55:13.01 Awv6PdXpp.net
UnsafePointer周りの公開IFは2.0から3.0までですら二転三転したから信用して使わない方が良いぞ、多分また変わる
Xcodeの自動コンバートでサポートしきれない変更だったから毎度手間だった
その覚悟をもって遊ぶなら楽しいオモチャではある
すごく日曜プログラマ向け

109:デフォルトの名無しさん (スップ Sd3f-3Y4X)
17/03/05 14:19:22.96 xyCUFaW+d.net
そもそもSwift自体が意識高い日曜プログラマー向けなんだから気にしない気にしない

110:デフォルトの名無しさん (ワッチョイ 1f30-BJNc)
17/03/05 14:37:19.10 rxgD3rR00.net
>>78
他の言語は基本後方互換はそのままだから
別にいいんだけど
swiftは後方互換がなくなるからな
そこは根本的に違う

111:デフォルトの名無しさん (アウアウエー Sabf-pTz+)
17/03/05 14:56:08.46 X99UGKjOa.net
どの言語もメジャーバージョンアップ時には完全後方互換じゃない気がするが
ただ、頻度が少ないだけで

112:デフォルトの名無しさん (ワッチョイ 0fba-HqPE)
17/03/05 14:59:33.17 k0Z4Rrjg0.net
完全広報五感の縛りは進化を妨げる
ツールでコンバートさせるswiftとアプローチは正解
さすが至高の言語swich

113:デフォルトの名無しさん (ササクッテロラ Spef-NRhz)
17/03/05 16:21:43.23 Awv6PdXpp.net
はっはっは
マイナーバージョンアップで互換性を壊すのがswiftだ
そんじゃそこらの言語と一緒にして貰っちゃ困るぜ?

114:デフォルトの名無しさん (ワッチョイ 1f3c-dv7B)
17/03/05 17:00:49.02 f1XixyjT0.net
ExpressibleByIntegerLiteral使えばもうちょいシンプルにできる?

115:デフォルトの名無しさん (ワッチョイ dbc9-zofg)
17/03/05 23:02:32.93 nindsAFW0.net
>>110
マイナンバーにみえた

116:デフォルトの名無しさん (スプッッ Sd3f-n2KM)
17/03/06 12:37:12.05 VBrHzi13d.net
>>96
名前でのアクセスとインデックスでのアクセスを両立したいってことかな?
俺だったら、名前→インデックスの辞書を持つ専用のクラスを作る

117:デフォルトの名無しさん (ワッチョイ 0f42-m4jB)
17/03/08 00:11:43.50 WpsGt1AL0.net
正直Swift熱は若干冷めてきたように思う
サーバーサイドSwiftとかもちっと頑張ってくれんかなあ

118:デフォルトの名無しさん (アウアウエー Sabf-pTz+)
17/03/08 00:19:58.38 QVjjY+1Na.net
今いちばんホットな言語は何ですか?

119:デフォルトの名無しさん (ワッチョイ 0f2b-BKUO)
17/03/08 00:45:04.17 6Gp+/qzY0.net
2.0, 2.1くらいまではまだswiftが業務に利用できると騙された奴がいたけど、さすがにもう居ないから...
こんな不安定な言語とランタイム、信仰心/遊び心以外で使うのは無理だよ
5になってAPI, ABIが安定したら再燃することを祈ってる
>>115
swift
他の信仰言語は文法,API,ABI他諸々が下位互換を保証するフェーズにまで枯れて冷めてる

120:デフォルトの名無しさん (ワッチョイ 0f2b-BKUO)
17/03/08 00:45:43.69 6Gp+/qzY0.net
typo. 信仰言語 => 新興言語

121:デフォルトの名無しさん (ワッチョイ bb02-sWdU)
17/03/08 01:04:02.77 xBMafHxz0.net
え、間違ってないよ?

122:デフォルトの名無しさん (ワッチョイ bb46-3Y4X)
17/03/08 01:09:29.16 tXLV2/vj0.net
>>115
はあ?
最もエレガントかつモダンでいらっしゃる超絶至高言語Swift様に決まってんだろ
馬鹿なの死ぬの?

123:デフォルトの名無しさん (ワッチョイ 8bba-HqPE)
17/03/08 01:17:04.53 Yw8lC4YB0.net
さすが究極幻想言語swift

124:デフォルトの名無しさん (ワッチョイ 1f3c-LOQs)
17/03/08 10:45:59.40 mMaqGsPC0.net
ブームは確かに去り始めてる気はする。
けど言語はまったく枯れ初めていないっていう現実。
ところで今年のtryswiftはどうだったの?
相変わらずswiftと関係ない話題ばかりだった?

125:デフォルトの名無しさん (ワッチョイ dbc9-pTz+)
17/03/08 10:50:21.01 3oZRIdEd0.net
>>115
JavaScript 2017

126:デフォルトの名無しさん (ワッチョイ 0f7b-liqg)
17/03/08 12:14:46.30 LioYldeQ0.net
>>115
Scala, Groovy をミックスした、Android用のJVM言語、Kotlin

127:デフォルトの名無しさん (ワッチョイ eb3c-prdN)
17/03/08 14:36:25.82 CPYQaxWN0.net
3への移行がダルすぎる
みんなもうやったんだろうな、、
2、3と共に生きるわ

128:デフォルトの名無しさん (ワッチョイ dbc9-pTz+)
17/03/08 14:52:44.76 3oZRIdEd0.net
RxSwift3.20に付属のPlayground重すぎ。特にCombining_Operatorsが。
マシンパワーが不足なのか?特にCPU Power。メモリ搭載量(16GB)には問題無いみたいだが、IvyBridge世代のcore i5 2coreには辛いのか?
同じ感想の人入れば、レスお願いします。

129:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/09 11:26:23.15 pYIrqD7n0.net
RxSwift3.2.0を動かしてます。SubjectはObservable�


130:ゥつObserverだと言うので 次のコードをiOSアプリ内で動かしてみました。 import RxSwift let sb = BehaviorSubject(value: 100) let v = Variable(2000) _ = v.asObservable().bindTo(sb) print(v.value) _ = sb.subscribe{print($0)} // 2000 // next(2000) このコードがPlaygroundで動きません。ObservableはbindToメソッドなんて 持ってないよ!と怒られます。どうやれば、Playgroundで動かせますか?



131:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/09 11:27:22.08 pYIrqD7n0.net
ちなみにmacOSアプリ内でも動きました。
Playground内だけで動きません。ウェーン!

132:デフォルトの名無しさん (ワッチョイ 323c-ZZsN)
17/03/09 12:31:55.48 x6aOWZGA0.net
>>126
import RxCocoaを追加すれば動いたよ

133:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/09 12:43:29.12 pYIrqD7n0.net
>>128
まじっすか?
Playground execution failed: error: MyPlayground2.playground:1:8: error: no such module 'RxCocoa'
import RxCocoa
当方では、moduleを見つけてくれないです。

134:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/09 12:52:23.68 pYIrqD7n0.net
もしやRxCocoaをbuildしないといけないのか?もう一回!

135:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/09 12:54:49.62 pYIrqD7n0.net
みなさん、あんがと!
bindToが動きました。
no such module when openning playground
でヒットしました。

136:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/09 16:25:15.49 pYIrqD7n0.net
RxCocoa-iOSのbuild時間 46.837sec
でした。
結構、時間かかります。

137:デフォルトの名無しさん (アウアウウー Sa93-Gk/B)
17/03/12 14:07:26.28 Zur4EQ5Na.net
TIOBE IndexでSwiftが初のトップ10入り
URLリンク(developers.srad.jp)

138:デフォルトの名無しさん (ワッチョイ f35b-aox5)
17/03/12 14:39:16.17 uNivVhq+0.net
>>133
Java, C++には遠く及ばないんだよねぇ。
おれ、Java嫌いなんだよねぇ。けど、TIOBE Programmer’s Indexでは1stなんだよねぇ。

139:デフォルトの名無しさん (ササクッテロル Sp57-WjpG)
17/03/12 14:44:12.31 VXGiwpO5p.net
Swiftの敵は、Java、C++じゃなくて、Objective-Cだから

140:デフォルトの名無しさん (ワッチョイ 723c-T4+7)
17/03/12 16:28:04.10 PM9jOmml0.net
っていうかObjective-Cを初めて上回ったっていうのが驚きだわ
感覚的にはObjective-Cはとうの昔に終わってて
もうみんなSwift使ってるとおもってたんだが

141:デフォルトの名無しさん (アウアウエー Sa8a-WjpG)
17/03/12 16:36:28.34 BRpGzvRUa.net
ん?
記事には、「2015年12月にはObjective-Cを初めて上回り」
って書いてあるが
文盲かな

142:デフォルトの名無しさん (ワッチョイ fbce-WjpG)
17/03/12 16:44:20.65 8TfkE0k40.net
なぜSwiftを使うのか
それはApple様御用達だからである
つまり超絶至高言語であることが生まれながらにして確定している言語
後光なんかも射しちゃってるレベル

143:デフォルトの名無しさん (スップ Sd92-1frF)
17/03/12 16:52:43.56 l7eMy7Cnd.net
ちょいちょい順位ネタ貼られるよね
そんなに「宣伝」しないといけないほどひどい言語なの?Swiftって

144:デフォルトの名無しさん (アウアウエー Sa8a-WjpG)
17/03/12 17:01:07.62 BRpGzvRUa.net
人に聞くんじゃねーよ
自分で考えろ

145:デフォルトの名無しさん (スップ Sd92-1frF)
17/03/12 17:40:23.34 l7eMy7Cnd.net
申し訳ございませんでした

146:デフォルトの名無しさん (ワッチョイ f35b-aox5)
17/03/12 19:52:14.06 uNivVhq+0.net
俺にとってはSwiftはRubyの皮を被ったC++
Generics標準ライブラリが充実してるのがGood。
文字列Stringが最初から標準ライブラリに入ってるのもoK.

147:デフォルトの名無しさん (ワッチョイ 32c9-aox5)
17/03/12 20:16:05.51 tiJBFb010.net
え、文字列がない言語とかあんの?

148:デフォルトの名無しさん (ワッチョイ f35b-aox5)
17/03/12 20:48:02.02 uNivVhq+0.net
>>143
言い方悪かった。
文字列の扱いがStringに統一されているのが良さげ。
参考:Visual C++
char 型のナロー文字リテラル。たとえば 'a'
wchar_t 型のワイド文字リテラル。たとえば L'a'
char16_t 型のワイド文字リテラル。たとえば u'a'
char32_t 型のワイド文字リテラル。たとえば U'a'
もう、ワケワカメ!
このほかにもCStringとStd::Stringもある。

149:デフォルトの名無しさん (ワッチョイ f73c-K8Mp)
17/03/12 21:04:17.82 ejYR6n6Q0.net
>>143
C言語

150:デフォルトの名無しさん (ワッチョイ fbce-WjpG)
17/03/12 21:16:05.03 8TfkE0k40.net
C言語ってやっぱり高級感のバランスがいいと思うわ
で、その良さをそのままにオブジェクト指向を導入したObjective-Cは...
おっとここまでにしておかなくては

151:デフォルトの名無しさん (ワッチョイ 97bd-O+kf)
17/03/12 21:24:32.40 bJtMC+h00.net
>>144
C++11でstd::stringが標準ライブラリに入ってるんだよなぁ
未だに拡張文字列ライブラリしか見てない時代遅れ乙

152:デフォルトの名無しさん (ワッチョイ 323c-ZZsN)
17/03/12 21:51:36.28 T4N3k6YJ0.net
>>142
Rubyとは普通に違う気がするが…
Groovy(Kotolin)が見た目の文法は一番近い
Swiftは関数のラベルのところが独特

153:デフォルトの名無しさん (ワッチョイ f73c-2hGO)
17/03/12 23:08:30.79 yhlL05Nv0.net
>>147
C++98な
VC++6.0のときからある
当時はTCHAR対応でtstring使ってたけど

154:デフォルトの名無しさん (ワッチョイ f3c9-2xLV)
17/03/13 03:24:20.32 A9v11X3F0.net
>>143
Erlang

155:デフォルトの名無しさん (ワッチョイ d2ed-lBbp)
17/03/13 06:01:28.93 hyVcDS3T0.net
>>148
Rubyと似ているところ
 スレリンク(tech板:262番)

156:デフォルトの名無しさん (ワッチョイ 0719-9O7/)
17/03/13 08:37:47.51 W+gruSmy0.net
collection.map { ..... } 
の書き方は
collection map {....}.
ってかくsmalltalkの書き方の真似だよ。
rubyでは{...}がオブジェクトじゃないからこうするんだけど
swiftは{...}がオブジェクトだけど関数の()が省略できないから
という理由でこうするのだろうね。

157:デフォルトの名無しさん (ワッチョイ 0719-9O7/)
17/03/13 08:46:31.00 W+gruSmy0.net
>>152をもしよむには、そこの間に:忘れたから各自補っておくように。

158:デフォルトの名無しさん (アウアウウー Sa93-j8zu)
17/03/13 13:44:46.91 l2t9P+Aja.net
>>152をもしよむには、Smalltalkのブロックが [ ] になってないからこれも各自脳内置換するように。

159:デフォルトの名無しさん (ブーイモ MM92-4Oo7)
17/03/13 16:20:02.25 VusjWGEdM.net
>>152
それ単にブロックを受け取るキーワードメッセージを一番最後に持ってきてるだけでしょ。
ブロック引数を特別扱いして不完全だけど有用な文法を作り出したrubyが真似たと言うにはちょっと…

160:デフォルトの名無しさん (ワッチョイ d2ed-lBbp)
17/03/13 20:11:52.15 hyVcDS3T0.net
>>152
Swift や Ruby のメソッド map に相当する
Smalltalk のメッセージは collect だよん
まとめよう
[Swift]
・collection.map({ ..... })  // 一般的(常識的?)な書き方
・collection.map() { ..... }  // クロージャを引数リストの直後へ移動できる
・collection.map { ..... }  // さらには丸カッコ () も省略できる
[Ruby]
・collection.map(lambda { ..... })  # Ruby だと一般的ではない
・collection.map() { ..... }  # ブロックを引数リストの直後へ移動できる(ブロック付きメソッド呼び出し)
・collection.map { ..... }  # さらには丸カッコ () も省略できる(これが普通の Ruby らしい書き方)
[Smalltalk]
・collection collect: [ ..... ]  "書き方はこれだけ"
たったこれだけで Swift の Tailing Closure は「smalltalkの書き方の真似」って言い切っちゃう>>152さんて素敵(棒

161:デフォルトの名無しさん (ササクッテロリ Sp57-O+kf)
17/03/13 20:27:44.22 OdMsjmQCp.net
よくわかんないけど
だからSmalltalk系譜のObjCは最高!Swiftはクソ!!
っていう荒らしの流れでおk?
swiftがperlとpyhtonとrubyとphpとjavaとc/c++とkotlinとgoとrustとetc....に似てるって
swift betaが出た当初から言われてたのに「SwiftはRubyの皮を被ったC++ 」とかヘソで茶が沸くよね
あっちこっちの言語から文法パクってるのに自分が知ってるRubyだけしか注目できてないだけじゃねーかw

162:デフォルトの名無しさん (ワッチョイ 0719-9O7/)
17/03/13 21:02:12.46 W+gruSmy0.net
rubyの言いたいことはメソッドの定義をメソッドの使用する形で書けるようにするって
事で、
smalltalkの言いたいのはオブジェクトの定義をオブジェクトにメッセージを送る形で
書きたかったということだから発想は同じ。
例えばC言語だと定義はint f(){}の形だけど使うのはf()の形だから同じじゃないからね。

163:デフォルトの名無しさん (ワッチョイ d2ed-lBbp)
17/03/13 21:41:18.89 hyVcDS3T0.net
>>157
せっかくSwift と似ている言語として「perlとpyhtonとrubyとphpとjavaとc/c++とkotlinとgoとrust」を
挙げてくれたのだから、各言語ユーザが自分の知っている言語に注目して、似ている所をカキコすれば
いいのではないかと思われ
たとえば、もし仮に Swift で内包表記が採用されていたなら、
「Swift は Pythonから内包表記をパクった」と主張できるよね
あるいは「Swift の Tailing Closure と似ている言語は XXX がある(Ruby だけじゃない)」といふ
意見が出てくれれば嬉しい限りですねえ

164:デフォルトの名無しさん (ワッチョイ 32c9-aox5)
17/03/13 21:48:14.79 4Ob213Q20.net
Haskellにも似てるらしいぞ
CPUの歓声が聞こえてくるところが

165:デフォルトの名無しさん (ワッチョイ 07ba-fiD0)
17/03/13 21:54:10.12 rWhPvBOB0.net
golangに似てるところ上げてみろよw

166:デフォルトの名無しさん (ワッチョイ 323c-ZZsN)
17/03/13 22:06:52.68 h57/U2+30.net
>>151
その程度の類似でRubyの皮を被ったとは言わんだろ

167:デフォルトの名無しさん (ワッチョイ 323c-ZZsN)
17/03/13 22:14:02.97 h57/U2+30.net
>>156
どうてもいいけどRubyはcollectの別名がmapだよ
普通はmapのほうを使うけどね

168:デフォルトの名無しさん (ササクッテロリ Sp57-O+kf)
17/03/14 06:26:59.13 oHQ/8mFsp.net
>>161
defer文法パックったところ

169:デフォルトの名無しさん (ワッチョイ f73c-jJqA)
17/03/14 16:49:31.85 +ZD30cPg0.net
他の言語の影響受けてるのは明言してるんだし
パクッてオリジナル主張してるわけじゃないから何に似てようが別に良くね
話の発端っぽい>>142も「俺にとっては」とあるから
単に当人が知ってる範囲内での感想だろう

170:デフォルトの名無しさん (ワッチョイ 97bd-O+kf)
17/03/15 04:07:35.03 Z1jXyE+K0.net
別に良いよ、Swiftの世間話として談笑してるだけだよー
SwiftはPythonから関数引数の順不同指定可をパクった
・・・が2.xのいつぞやのタイミングで仕様ドロップと相成って悲しい
確かにSwiftで使うメリット少なくて利用者いなかったかもしれんけど、わざわざ実装したのに勿体ない

171:デフォルトの名無しさん (アウアウエー Sa8a-WjpG)
17/03/15 10:07:37.18 WCbgXlGea.net
Swiftは言語界の中国人ですね

172:デフォルトの名無しさん (アウアウウー Sa93-j8zu)
17/03/15 11:14:37.72 qed+p8OGa.net
>>166
名前付き引数の順不同化はSmalltalkのメッセージ式を見たら誰でも最初に思いつくアイデアだけど
似たようなObjective-Cのやり方を内部的に引きずっていたらきっと難しいだろうね
ちょっと試すくらいなら簡単だけど、すぐに破綻をきたす

173:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/15 13:53:38.07 62YvBKwJ0.net
>>165
話の発端「Rubyの皮」、の発言人です。
Pascal, Clang, Fortran, Lisp, Ruby, Visual Basic, C++を触ってきた経験からの
感想です。Rubyの皮を被ったC++ってのは。
Swiftはいろんな言語の影響を受けてる事が判りました。
今はJavaScriptを触りたいけど、時間が無い。

174:デフォルトの名無しさん (アウアウエー Sa8a-WjpG)
17/03/15 14:09:22.47 MTxLUUdIa.net
COBOLの経験のない奴には言語を語る資格はない

175:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/15 14:33:46.75 62YvBKwJ0.net
>>170
なぜでしょう?

176:デフォルトの名無しさん (ワッチョイ 131f-2xLV)
17/03/15 14:34:53.40 7YWEdixI0.net
>>169
javascriptはやめとけ

177:デフォルトの名無しさん (アウアウエー Sa8a-WjpG)
17/03/15 14:39:23.26 MTxLUUdIa.net
>>171
プログラミング言語の黎明期に名を馳せた大御所だから
言語の歴史と発展を語る上でその存在は無視できない

178:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/15 14:58:49.09 62YvBKwJ0.net
>>173
では、その大御所は現代のプログラミング言語にどの様な、影響を与えているのでしょうか?

179:デフォルトの名無しさん (アウアウエー Sa8a-WjpG)
17/03/15 15:20:22.31 MTxLUUdIa.net
影響というより、その冗長性と非モダンな特徴からくる反面教師としての側面の方が大きいかな
COBOLを知っていないと実感をもって指摘はできないだろうけど

180:デフォルトの名無しさん (ワッチョイ f73c-aox5)
17/03/15 16:05:11.06 xlyceK/o0.net
>>170
老害はシネy

181:デフォルトの名無しさん (ワッチョイ 33c9-WjpG)
17/03/15 17:00:38.28 62YvBKwJ0.net
>>176
まあまぁ、そんな過激な事言わずに!
ってか、ボキャ貧すぎる。

182:デフォルトの名無しさん (ワッチョイ f73c-aox5)
17/03/15 17:21:51.12 xlyceK/o0.net
>>177
ボキャブラ天国とか見てた老害はs

183:デフォルトの名無しさん (スッップ Sd92-K8Mp)
17/03/15 18:31:39.28 tAf0WVvBd.net
C言語系やっていてK&Rを知らないってどういう事?

184:デフォルトの名無しさん (ワッチョイ 5232-C77W)
17/03/15 19:12:41.40 sBKf9EyJ0.net
>>179
日本人やってるけど原文で源氏物語スラスラ読める奴少ないだろ?
既に古典なんだよ

185:デフォルトの名無しさん (ササクッテロロ Sp57-WjpG)
17/03/15 19:37:35.38 3Vn4G48fp.net
スラスラは読めないけど、作者と大体のあらすじは知ってるわな

186:デフォルトの名無しさん (スッップ Sd92-K8Mp)
17/03/15 21:02:45.81 tAf0WVvBd.net
>>180
基礎の基礎だと

187:デフォルトの名無しさん (ワッチョイ 133c-QFag)
17/03/16 01:01:49.48 AMKOKIXm0.net
お前ら行書読めるの?スゲー

188:デフォルトの名無しさん (ワッチョイ bf85-tpgq)
17/03/16 01:12:51.30 5p3YbdlX0.net
マシン語でもおぼえとけ

189:デフォルトの名無しさん (ワッチョイ a3ba-yrln)
17/03/16 01:27:04.22 zhQm4U/K0.net
>>183
草書は無理だけど行書は読めるんでない?

190:デフォルトの名無しさん (ワッチョイ 133c-QFag)
17/03/16 02:02:49.43 AMKOKIXm0.net
>>185
素で間違えた。それを言いたかった
でも、行書でも結局読めない
空海・風信帖
URLリンク(upload.wikimedia.org)
最澄・久隔帖
URLリンク(upload.wikimedia.org)

191:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/16 02:21:25.59 7dTItZGXa.net
ところどころ読めるやろ

192:デフォルトの名無しさん (ワッチョイ 133c-QFag)
17/03/16 08:03:25.57 AMKOKIXm0.net
>>187
コンパイルエラー

193:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/16 09:05:27.04 /skZEy4/d.net
ロードはできるけどコンパイルエラーするな

194:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/16 10:07:43.91 bRh67wE3a.net
デバッグしろよ

195:デフォルトの名無しさん (ササクッテロリ Sp97-td7u)
17/03/16 11:38:07.47 7qEFMeDJp.net
文法もわからんしAPI仕様書もない、ムリゲ
しかし、日本語の大御所で基礎の基礎だから読めないヤツは日本語を話る資格ないのか
これからは日本語でおkとか言えないな、、、

196:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/16 11:49:59.94 bRh67wE3a.net
神経質な奴だな
そんな落ち込むなよ

197:デフォルトの名無しさん (スフッ Sddf-CJUg)
17/03/16 12:31:27.45 0Zav/vrEd.net
コンパイラなんてそんなもんだよ
ソースが同じでもテキストフォーマット変わればコンパイル通らないし
同じ言語でも世代が違えばコンパイル出来なかったり動作が変わったりする

198:デフォルトの名無しさん (ワッチョイ 03c9-JN/B)
17/03/16 12:36:14.54 68bWV4sz0.net
>>193
Ruby1.8, 1.9しか知らんのだけど、今時の2.4ってのは全然動作が違うのかね?
osx El CapにはRuby2.0搭載なので、極タマに使ってみて、あんまり変化の無い
事に安心してるんだが。

199:デフォルトの名無しさん (スップ Sddf-8YZg)
17/03/16 12:40:19.13 fylU8k5ad.net
>>191
「日本語でおkとか」の「とか」は、「日本語でおk」以外の何?

200:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/16 12:53:53.08 bRh67wE3a.net
とか
1.
《副助》例をあげて並べるのに使う。 「A―B―の記号」
2.
《普通は下に「言う」「聞く」などを伴って》 《連語》内容が不確かであることを表す。 「橋沢―いう人」

>>191の場合は、「2.」の用例だろ
つまり、
「日本語でおk」だったか、「日本語でOK」だったか、「日本語でおっけー」だったか不確かだけど、そんな風な言い方
ってこと

201:デフォルトの名無しさん (スップ Sddf-8YZg)
17/03/16 13:04:00.85 fylU8k5ad.net
>>196
内容が不確かな事を書かれても、不確かなのだから、何を書きたいのか解らないよ。

202:デフォルトの名無しさん (ササクッテロロ Sp97-aZn0)
17/03/16 14:04:38.09 B/XDf7Uvp.net
じゃあ、日本語でおk で

203:デフォルトの名無しさん (ワッチョイ 133c-QFag)
17/03/16 19:08:04.75 AMKOKIXm0.net
>>197
>>191の言いたいことは、”日本語でおk”のネタさえ知ってれば通じるだろ
通じなかったとしたらネタを知らないか、アスぺなだけだろ

204:デフォルトの名無しさん (スププ Sddf-CJUg)
17/03/17 09:04:36.10 CVisIQCrd.net
>>199
この人はこのスレに住み着いて「とか」だけに反応する可哀想な人だから
みんなでとかとか使いまくってもっと可哀想にしてやろうよ(いじめの提案)
>>197
不確かであることを明示して話を進めることはよくある事だよ
主に明確化に意味が無い、あるいは主題を明確にするために枝葉部分を意図的に明確定義しない、などの用法がある

205:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/17 17:40:08.81 OpOSLOXG0.net
>>191のとかは不相応の程度を強める際の「なんて」と可換なニュアンスだろう
例 ハゲとか無理

206:デフォルトの名無しさん (スップ Sddf-KrGq)
17/03/18 01:27:16.65 6ina02vGd.net
日本語とかでおk

207:デフォルトの名無しさん (ワッチョイ 53ba-nPNM)
17/03/18 02:26:45.14 6b/Lj0PJ0.net
必ずしも日本語じゃなくてOKってことね
よかった

208:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/18 10:00:01.78 T7L2R5qRd.net
とかに無理やり絡めると
省略あるいは不明確を示すとかはワイルドカードなんだと思う
とりあえず早い事perl like構文で使える正規表現をサポートしてほしい
Swiftのガッカリポイントの一つがまだ純正で正規表現が使えないというところだったから

209:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 10:52:24.54 h03j8lZL0.net
>>204
String#range(of:​options:​range:​locale:​)
options のところに .regularExpression を使えば、searchString で正規表現を利用した文字列(例えば “2ch+*" とか)が使えます。

210:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 10:55:36.95 h03j8lZL0.net
typealias String.CompareOptions = NSString.CompareOptions
に注意ね。

211:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/18 11:50:49.28 T7L2R5qRd.net
>>205
うん、しってるんだけどさぁ、これってNSStringにブリッジしてそっちのregex使ってるんじゃなかったっけ?
内部的にutf16になっちゃうので使いにくかった気がする
Swift2の頃の記憶だからSwift3では違うのかな?
Swiftではregex使わないようにしてたので、久しぶりに使ってみるかな?

それと、perlみたいにregexの結果をイテレートしてとか
そういう使い方したい

212:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 12:05:47.32 h03j8lZL0.net
import Foundation
let str: NSString = NSString(string: "Charlie Brown")
let a:NSRange = str.rangeOfString("Brown")
print(a.location)
print(a.length)
print(NSNotFound)
var ar: NSArray
do {
let reg: NSRegularExpression = try NSRegularExpression(pattern: "Brown",
options: NSRegularExpressionOptions.UseUnicodeWordBoundaries)
let str0 = str as String
let match: NSTextCheckingResult? = reg.firstMatchInString(str0,
options: NSMatchingOptions.ReportCompletion,
range: NSMakeRange(0, str.length))
print(match)
print(match!.range)
} catch {}
ちょいと前に保管したsnipet

213:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/18 12:32:40.53 vKa31hq6d.net
>>208
さんきゅ
あとで試してみる
しかし、やっぱりperl並みのお手軽さが欲しいところ

214:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/18 12:51:59.51 15tZ92u+p.net
少し前のDev MLで正規表現を言語仕様に組み込む話題があったような
あって困るものじゃないから入って欲しいね

215:デフォルトの名無しさん (ワッチョイ bfc9-QFag)
17/03/18 12:54:59.80 XXqg+DqY0.net
議論はあったけど4には入らんと思う
> Addressing Regexps in Swift proper is out of scope for Swift 4, because
> there's simply no time to design and add the necessary language features.

216:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/18 14:54:04.70 CoM5VADKa.net
Obj-Cもそうだけど、Swiftで正規表現使おうとするたびに、使い方をググってるわ
Perlだとすぐに書けるんだけどな

217:デフォルトの名無しさん (ワッチョイ bf3c-5NuA)
17/03/18 15:26:50.32 eyWXYpAT0.net
Swift 4が最終ステージに(白目)
URLリンク(www.infoq.com)

218:デフォルトの名無しさん (ワッチョイ bfc9-QFag)
17/03/18 15:51:30.64 XXqg+DqY0.net
日本語版InfoQはいつもネタが一ヶ月遅い

219:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 16:03:29.07 h03j8lZL0.net
>>213
ABIって見るたびに、なんの略だったっけ?となる。
BI = Binary Interfaceだよね?
What does “A” stands for?

220:デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
17/03/18 16:33:29.93 L7+Dd5xH0.net
>>215
"A" for Application

221:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/18 17:10:49.00 61cBFpsD0.net
APIの派生
ソースレベル互換→バイナリレベル互換

222:デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
17/03/18 18:08:39.34 L7+Dd5xH0.net
なかなかAPIとABIとシステムコールとライブラリとフレームワークという言葉ををきちんと分かった上で使い分けるのが難しいんだよね
うちの若手とか
>>213の文脈だと
以前からあるライブラリとかと再コンパイルしなくてもリンク出来る
ってのがABIレベルでの互換性だろうね

223:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/18 18:39:09.49 61cBFpsD0.net
システムコールは置いといていいでしょ
普通の開発者は直接的には使わないんだし

224:デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
17/03/18 19:27:50.95 15tZ92u+p.net
これと言ってることが微妙に違うのはInfoQの情報が古いのか、こっちの更新が遅れているのか
URLリンク(github.com)
はよABI安定させてlibSwift.soをiOS, macOSのシステムライブラリに保存してくれよなぁ
Swift 3でABI安定させるって理想だった頃はその構想だったのかもしれんが、ABI安定時期が不透明な今はもう諦めてるのかもしれん

225:デフォルトの名無しさん (ワッチョイ 3f93-CJUg)
17/03/18 20:06:24.89 L7+Dd5xH0.net
>>219
いやさ、printf()で済むところをwrite()とか、put()とか使いたがる人が居たりするんだよ
ライブラリ関数とシステムコールの違いが分かってないのよねん
説教したくなるのをグッとこらえて、システムコール使うと遅くなるしメンテナンスが大変になるんだよと言ってもなかなか納得してくれない

226:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/18 20:38:16.85 GFFJDG7E0.net
Objective-Cでおk
以上。
おつでした。

227:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/18 20:39:58.56 61cBFpsD0.net
>>221
printf()もシステムコール使ってるよ
write() put()はシステムコールでなくラッパー関数でライブラリの一部
遅いのはシステムコールやチェック処理の回数差でバッファリングに起因する

228:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 22:12:10.15 h03j8lZL0.net
>>221
システムコールって遅いの?逆なんじゃない?
つまり、ライブラリ関数より早い。
だって、ライブラリ関数はシステムコールのラッパー関数なんでしょ?
俺、arc4random_uniformとか、atofとか使いまくってるんですけど。

229:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/18 22:21:36.55 h03j8lZL0.net
>>223
write()ってのは、何を指しているのでしょう?
ライブラリの一部というのだから、
FoundationライブラリString#write(to:)の事でしょうか?
なら、printfよりも遅いですよね。
put()はなんの事でしょうか?

230:デフォルトの名無しさん (ワッチョイ 133c-tpgq)
17/03/18 23:27:27.95 61cBFpsD0.net
>>224
システムコールは特権レベル変更に伴うコンテキストスイッチなどのオーバーヘッドのため
ユーザーモードで完結するものより遅い
atofはシステムコールしない、arc4random_uniformは再シードのときだけシステムコールするようだ
>>225
>>215-219はSwiftやiOSに限らない一般的な話, >>221,223はC言語標準ライブラリまたはPOSIX
putはputsやfputcなど
通常のプログラムからラッパー関数はcdeclなどで呼ぶ
ラッパー関数はシステムコール番号などをレジスタにセットして
int 80hやsyscallなどのCPU命令を実行する

231:デフォルトの名無しさん (ワッチョイ 133c-tpgq)
17/03/18 23:30:26.08 61cBFpsD0.net
長々書いたけど swiftdoc.org やAppleの開発ドキュメントを
見てたら多分支障無いから気にしなくていい

232:デフォルトの名無しさん (ワッチョイ 035b-8e1h)
17/03/19 00:02:51.00 X9SioAAy0.net
>>226
なるホドォ

233:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/19 00:11:01.40 WMiUvz/ea.net
まさかこのスレにシステムコールのオーバーヘッドを気にするようなスピード狂がいたとは

234:デフォルトの名無しさん (ワッチョイ cf7b-vzQh)
17/03/19 02:31:51.49 MM3vmS8Q0.net
1,000バイトの読み書きをするのに、1バイトずつ、
syscall * 1,000回すると遅いから、
ライブラリ内でバッファを確保(バッファリング)して、
1,000バイト貯まったタイミングで、syscallを1回だけ呼ぶと、速い

235:デフォルトの名無しさん (ワッチョイ a33a-MtDv)
17/03/19 08:50:33.86 BHsM6TZ60.net
Dispatchの良いドキュメントってありますか?英語でもいいです。mpiのparallel forと同じようなことがしたいんですが、よくわからないので勉強したいので

236:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/19 09:06:36.45 X9SioAAy0.net
>>231
Apple Gudes and Sample Codeで探せば!
Concurrency Programming Guide
とかヒットするけど。
Dispatch Queues, Dispatch SourceのSectionを参照。

237:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/19 09:46:45.92 QbTcqaOM0.net
システムコールのオーバーヘッドを気にするような人がSwiftのようなモダンな高級言語を
使うとは胸熱だな
速度をちゃんとコントロールしたいならO


238:bjective-Cじゃないと無理だろ...



239:デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
17/03/19 09:55:06.98 yi8Y0/pHp.net
ObjCもlibobjc.soとかのランタイムを食わせないと動かないからダメだろ
Swiftよりはランタイム総容量は小さいけどObjCにもランタイム/ラッパー関数は必要なんだぜ?
システムコール呼び出すC関数呼ぶだけならSwiftでもできるから同じ土俵

240:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/19 10:08:01.66 X9SioAAy0.net
system callの呼び出し履歴を表示する、dtrussってコマンド見つけた。
trussのdetails版らしいけど、trussってなんの略だ?

241:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/19 10:10:39.12 X9SioAAy0.net
trussはmanのsection 1にあるはずなんだけど、documentが、ない。
なぜだ?

242:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/19 10:12:54.40 X9SioAAy0.net
truss = trace user signal and system callかな?

243:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/19 10:35:19.35 QbTcqaOM0.net
>>234
>システムコール呼び出すC関数呼ぶだけ
C言語に頼るwithout CなSwift

244:デフォルトの名無しさん (ワッチョイ 532b-v7qi)
17/03/19 16:43:04.63 BRUWii050.net
文法はwithout Cだけど、機能はwith CのSwiftすごい!!
Modern Objective-Cとかいう微妙に時代遅れなモダン言語(笑)とは違うな

245:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/19 17:04:16.85 QbTcqaOM0.net
Swift:「文法はwithout Cだけど、機能はwith CのSwiftすごい!!」
C:「それじゃあ結局のところSwiftは文法的な見た目をモダン()にしただけの言語ってことになっちまうじゃねぇか...」
Objective-C:「」

246:デフォルトの名無しさん (JP 0H37-oEzJ)
17/03/19 17:13:15.07 zGHcaEctH.net
juliaも忘れんとって

247:デフォルトの名無しさん (ワッチョイ bf3c-5NuA)
17/03/20 10:21:19.90 QillsqV80.net
つまりインラインでC言語が書けるObjective-Cが最強ってことだな。
SwiftもC言語埋め込めるようにすれば最強になれるで。

248:デフォルトの名無しさん (ワッチョイ bfd4-pP+o)
17/03/20 11:09:21.86 KXLYvEOG0.net
じゃあ、swiftにObjective-Cを埋め込めれば、真の最強じゃね?

249:デフォルトの名無しさん (ワッチョイ 53ba-nPNM)
17/03/20 11:21:56.39 XcCZvFx20.net
至高の言語Swiftにひざまづけ愚民ども

250:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/20 11:38:00.54 9CFcUwN1d.net
without Cにする必要性について

251:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/20 11:42:15.65 0inF6e9Oa.net
ソースが汚くなるから
王室に乞食を招き入れるわけにはいかんだろ

252:デフォルトの名無しさん (ワッチョイ 532b-v7qi)
17/03/20 11:42:37.51 IesYv4al0.net
>>242
文法はwithout Cで機能はwith CのSwiftの最強
何が不足なのか分からんぞ?
ObjCに比べてランタイム容量がアホほど大きいデメリットは分かる

253:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/20 11:42:54.31 9CFcUwN1d.net
>>242
まあObjective-CはCのスーパーセットだからな
Cそのものを含んでると言っていい
CでできることはObjective-Cでも100%できる

254:デフォルトの名無しさん (スッップ Sddf-8YZg)
17/03/20 13:24:38.46 es7jdWbid.net
俺はObjective-Cで、かつ、省略しない方が好き。
Swiftは、なんか、いろいろ中途半端。
あと、省略可能なのは良いけれど、省略した時にどうなるかを、考えなさすぎ。
省略時の動作は、最終的にコンパイラの実装依存になる。
よってコンパイラが変われば、全く期待した動作にならない場合だってあるんだよ。

255:デフォルトの名無しさん (アウアウエー Sa1f-JN/B)
17/03/20 13:32:26.07 LSRu7fHya.net
Swiftに、省略時の曖昧な動作なんてあったっけ?

256:デフォルトの名無しさん (エムゾネ FFdf-CJUg)
17/03/20 13:39:46.35 MLqjE/IfF.net
>>242
Swiftでも直接Cの関数呼べるけどなんか問題ある?
このスレでも少し前にdup2()呼ぶサンプル書いてる人いたよ
個人的には
"C":{}とかで囲んで明示する必要がいるくらいには敷居を上げておいて欲しかった
今だと普通に呼べすぎて、swiftの関数なのかCの関数なのか見分けがつかない

257:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/20 14:21:57.88 EvEkzDYt0.net
>>250
型推論の事言ってんじゃないか?
別に省略してる訳じゃないのにね。
あるいは、syntax sugarの事かも。
Array<Int>を[Int]とか書いたり。

258:デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
17/03/20 14:48:23.91 G0HPo1ICp.net
見分けがつかないからなんだってんだよ

259:デフォルトの名無しさん (ワッチョイ 23ce-gIrG)
17/03/20 15:03:51.36 OmtBFJ4n0.net
Swiftってザ・意識高い系って感じの言語だな
C言語の関数呼べるようにする必要ないくらいじゃないと言語とは言えんし

260:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/20 16:30:53.49 E6+3UOyx0.net
Bridging Headerもmodulemapも言語の機能じゃ無いよ

261:デフォルトの名無しさん (ワッチョイ 23ce-JN/B)
17/03/20 17:05:35.61 OmtBFJ4n0.net
without Cを謳っておいてCの関数を呼び出す
仕組みを用意してるのって滑稽だねってだけだよ

262:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/20 17:06:20.49 fEdZO0mtp.net
>>254
比較対象がVM言語やインタプリタ言語かよ
意識低いなw

263:デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
17/03/20 17:13:00.01 G0HPo1ICp.net
without C を謳うのは建前
でもcが使えちゃうのは本音
日本人ならわかるだろ?

264:デフォルトの名無しさん (ワッチョイ ef78-CJUg)
17/03/20 17:31:37.32 qt6rA4Ca0.net
>>254
Javaだけど呼んだ?

265:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/20 17:36:09.37 5DkpfNMbd.net
gccがgasコードを吐くように、swiftもObjCコードを吐けばいいんじゃね?w

266:デフォルトの名無しさん (ワッチョイ 035b-QFag)
17/03/20 17:43:37.75 EvEkzDYt0.net
>>260
それは難しいだろう。
associatedtype付きのprotocolとかObj-Cに移植できるの?

267:デフォルトの名無しさん (ワッチョイ 532b-v7qi)
17/03/21 07:36:52.81 9HZnXlk90.net
gccがgasコードを吐くように、clang/swiftcがLLVM IRコードを吐く件
>>251
Swiftコード中に書くC, ObjC関数は、.swiftヘッダファイルに同名で再定義されたswift関数だから見分けつかない
Swiftフレームワークライブラリの中に入ってる.swiftヘッダ見るとC,ObjC,Swiftの全ての関数が同列に並んでてこんなことしてるのかよwwwって笑う

268:デフォルトの名無しさん (ワッチョイ 3f74-CJUg)
17/03/21 07:41:09.49 JY9T0YVB0.net
JavaのJNIだとCを呼び出すための敷居が高すぎるんだよな
でもswiftだと敷居が低すぎる
なんてワガママな俺

269:デフォルトの名無しさん (スップ Sddf-gIrG)
17/03/21 07:54:24.70 nRmSmnIrd.net
C言語の関数呼び出さないとやりたいこと出来ないわけ?

270:デフォルトの名無しさん (ワッチョイ 532b-v7qi)
17/03/21 08:21:33.84 9HZnXlk90.net
やりたいことを出来ないんじゃなくて、>>238のように出来ることを煽りたいんだと思う
それが煽りになってるのか分からんけど
最初は(システムコールを扱う時に)SwiftだとObjCほど性能でないwwwって煽ろうと思ったら同レベルで引くに引けなくなった感じがする
単純にSwiftランタイムのばかでかさに依る性能劣化を煽ってればその通りなのにね
ランタイムのロードとか関数マップテーブルからのAPI検索とか、システムコールだと差分ないけど一般利用時に性能悪いのは必然だもの

271:デフォルトの名無しさん (エムゾネ FFdf-gIrG)
17/03/21 09:14:33.95 XLp7uPXRF.net
Swiftでないとダメな5つの理由
とか誰か書いてよ

272:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 09:21:56.02 hTMAmD++d.net
1.学習コスト
2.生産性
3.スタイリッシュ性
4.流行
5.信仰心

273:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 10:36:30.52 H55j2XV7d.net
>>264
さあ?
あなたの作るプログラムで必要であれば必要だし
必要でないなら必要ない
うちの場合OpenCV使うのにC++ブリッジ使ってる
あと、無限ループで延々九九と答え吐き出すコンソールアプリ作っておいて
Ctrl+Cを押されたら「知るかボケ!忙しいんじゃ」と吐き出して、そのまま無限ループを続けるプログラムを作りたかったら
俺はSwiftだけで書く方法を知らないのでCの関数(と言うよりはPOSIX API)を呼び出す

どうして全部Swiftでできるようにしないのか?と言う問いに対しては
Javaプロジェクトが一つの答えだと思う
OSのAPI層までを言語と標準ライブラリに取り込もうとする意欲的な試みは
20年以上かけてある程度成功したが、柔軟性を失わせる副作用と言語の肥大化をもたらした
そしてJavaからCを呼び出す仕組みであるJNIは未だに必要とされている
全部をプログラミング言語に取り込むのではなく既存の仕組みとうまく連携するのがバランスの良いとの判断なんじゃないかな?

274:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 10:46:19.71 MDnLMEwZd.net
swiftは初めからjavaのようなマルチプラットフォームを目指しているわけでもあるまい

275:デフォルトの名無しさん (スプッッ Sddf-pP+o)
17/03/21 11:08:08.11 CAHXK6Wdd.net
Floatを引数にとる関数で、その引数の場所で(1+n)とかやると、
Binary operator '+' cannot be applied to two 'Int' operands
ってエラーが出て嵌った。
URLリンク(stackoverflow.com)
エラーメッセージが不親切過ぎる。

276:デフォルトの名無しさん (スプッッ Sddf-pP+o)
17/03/21 11:11:47.89 CAHXK6Wdd.net
上のリンクでは
Binary operator '*' cannot be applied to two 'Int' operands. Expecting two 'CGFloat' operands.
ってエラーメッセージの方が良いと書いてるけど
Binary operator '* -> CGFloat' cannot be applied to two 'Int' operands. Expecting two 'CGFloat' operands.
だと、まだ分かりやすかったと思う。

277:デフォルトの名無しさん (ブーイモ MM77-nFTW)
17/03/21 11:20:38.39 g+RWoDDLM.net
>>246
王とはCのことか

278:デフォルトの名無しさん (スッップ Sddf-8YZg)
17/03/21 12:12:24.85 PXKTLJIMd.net
>>266
「Swiftでないとダメな5つの理由とか」の「とか」は、「Swiftでないとダメな5つの理由」以外の何?

279:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/21 12:13:48.48 1Za/GAk+p.net
Objective-Cこそ王族の言語(信仰心
>>266
ダメな理由なら3つほど
1. 小さなランタイム(笑)
2. 頻繁に破壊される言語仕様
3. 不完全なエコシステム(ビルドツール)
これらはメリット/デメリットが双方あるものじゃなくデメリットしかないから煽ってもおk
この辺はswiftユーザはもう諦観して苦笑しながら使ってるデメリットだけども

280:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/21 12:16:06.38 1Za/GAk+p.net
>>273
「swiftがダメな3つの理由」とか

281:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 12:19:09.63 H55j2XV7d.net
>>273
お、久しぶりに出てきた
全部の「とか」に反応するわけじゃなくて
選択的に反応してるのか?
しかしその選択基準がまだよく分からないな

282:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 12:37:34.87 H55j2XV7d.net
>>269
うん、
マルチプラットホーム対応を言語レベルでは行わない選択をした=実行環境ネイティヴ(多くの場合はCで提供されている)とのインターフェースが必要
だと思ってる
without CなのにCが必要wwwって煽ってる人は
言語仕様とネイティヴインターフェースを混同しているおバカな自分をアピールしたいんしゃないかな?

283:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 12:39:40.14 huV0U58I0.net
>>269
Multi-platform目指してると思うよ!
Linux, macOSとで動くし。
Windowsでもそのうち動く様になる。bash, vimが動く様に。

284:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 12:41:05.23 huV0U58I0.net
>>270
A + BでそのError Occuredの場合、
大抵は、
Int(A) + B
ってするとOK

285:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 12:45:05.87 MDnLMEwZd.net
>>278
動く、使える=swiftがswiftプラットフォームとしてマルチを目指しているではない

286:デフォルトの名無しさん (ササクッテロリ Sp97-TYuy)
17/03/21 12:52:34.12 1Za/GAk+p.net
>>278
cygwinポーティングはとっくに公式にマージされただルルォ
Androidでも動くしコミュニティの愛すべき馬鹿どもは頑張ってる
>>279
それ、Int(A)がキャストじゃなくコンストラクタ呼び出しで生理的に気分悪いよな
どこまで最適化走るか不明瞭だけど普通に考えて性能悪化を手助けしてる

287:デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
17/03/21 12:59:01.94 I3nNj3Lbp.net
オプショナル型ちょ~便利
型類推もちょ~便利
文末にセミコロン不要なんてサイコー
letとvarの使い分けがありがたすぎ
switch文が強力すぎて鼻血でたー
enum構文がおいしすぎてよだれ出るぅ
Playgroundが便利すぎぃ
他にもまだまだたくさんよりどりみどりぃ

288:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 13:52:46.38 huV0U58I0.net
>>281
キャストとは、Superclassを同じくするインスタンスどおしの型変換。
IntとCGFloat間でキャストできる方が気分悪い。

289:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 14:19:23.23 H55j2XV7d.net
>>278
あ、ごめん、スレチかと思って説明しなかったんだけど、

Javaはバイナリレベルでのマルチプラットホームを旗印にしてたんだ
"Write Once Run Anywhere"をスローガンにして
つまり一度コンパイルして作成したアプリとかは、macでも、winでも、unixでも、携帯でも、再コンパイルすら必要なく同じ動作するよ!って
そのためにAPIやABIなど今までOSの役割だったところをJavaという仕組みの中に取り込んでいった
もちろん、そんなにうまくいくはずもなく"Write Once Debug Everywhere"と揶揄されることになった

それに対して伝統的なUnix系の考え方は、再コンパイルして動けばオッケー
動作が違う?OSとかの環境が違うんだから当然だよね、ソースでifdefしよう!
って感じのマルチプラットホーム
これですら、PosixやSUSとかの活動によるAPIや実行環境レベルでの統一化や
gnu automakeなどによる実行環境とビルド環境の調査とそれに対応したビルド
などでかろうじて維持されているレベル

C言語とかで書いたプログラムがmacでも、winでも、Linuxでも動くというのは
言語がマルチプラットホーム対応しているわけではなく、後者の意味でいろんなプラットホームで動くようにプログラムやビルドシステムを書いているから
Swiftも今の所後者に属してると思うよ

290:デフォルトの名無しさん (ワッチョイ 032b-v7qi)
17/03/21 14:49:45.32 LQyko2ZP0.net
>>283
お前それプリミティブ型のintとfloatでも同じ事言えんの?
基本的な数値型をプリミティブ型として一般的に提供しないSwift
プリミティブ型ではなく構造体型で全数値型を提供する意義は分かるが性能劣化してるんだよなぁ

291:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 14:49:46.32 huV0U58I0.net
>>284
THX
Single UNIX Specificationってのがあるのね。

292:デフォルトの名無しさん (ブーイモ MMdf-S3kY)
17/03/21 15:22:22.74 vtLrbY1LM.net
なんでここCのシンタックスを外したことをwithout Cって言ってるのに
without CつったらCの機能が呼べないようにならないとおかしいだろ?
とかとんちんかんなこと言う奴しかいないのん?
ラトナーが草葉の陰から泣いてるぞ

293:デフォルトの名無しさん (ササクッテロラ Sp97-v7qi)
17/03/21 15:40:06.05 DXgiF4dPp.net
日本語でおk

294:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/21 15:50:06.39 huV0U58I0.net
>>285
Swiftの高速演算に対する思想。高速演算必要ならClangで書いてね。Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。例:RxSwift/RxCocoa/Runtime
高速演算したけりゃ、その部分をClangで書いてSwiftから呼べば良い。

295:デフォルトの名無しさん (ワッチョイ bff3-QFag)
17/03/21 16:06:44.92 p7k0dZ7/0.net
>>285
@_transparent付きで中でビルトインの変換呼んでるだけだからCやC++と比べても性能劣化なんて皆無だと思う
実際にIR見ても別に無駄にジャンプしたりしてない
素でsitofpとかしてるだけ
ナローイング変換はprecondition入るけどそれも最適化されるし

296:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 16:27:53.04 MDnLMEwZd.net
Clangっていうとコンパイラしか思い浮かばないんだが

297:デフォルトの名無しさん (ササクッテロリ Sp97-v7qi)
17/03/21 17:51:22.44 pxhdVPhBp.net
> Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。
Swift Package Managerがクソな完成度でSwift Framework LibraryにC言語のソースはembed inできないんだけど...
まぁそもそもアレはFramework Libraryを生成するコマンドとしても成り立ってないから論外なのかもしれんが
Swift公式として真っ当な技法を提供してなくて、バッドノウハウとしてRxSwiftやRxCocoaがやってることをやれってことなんだろうな(ウボァ

298:デフォルトの名無しさん (スッップ Sddf-8YZg)
17/03/21 18:48:58.62 PXKTLJIMd.net
>>284
「一度コンパイルして作成したアプリとか」の「とか」は、「一度コンパイルして作成したアプリ」以外の何?
> macでも、winでも、unixでも、携帯でも
macはハードウェア
win、unixは、オペレーティングシステム
携帯は動詞
「C言語とか」の「とか」は、「C言語」以外の何?

299:デフォルトの名無しさん (ササクッテロロ Sp97-JN/B)
17/03/21 19:25:34.11 I3nNj3Lbp.net
一度コンパイルして作成したアプリとか
一度コンパイルして作成したアプレットとか
一度コンパイルして作成したサーブレットとか
C言語とか
C++とか
Pascalとか

300:デフォルトの名無しさん (ワッチョイ 133c-QFag)
17/03/21 19:42:18.10 jxZBoDQT0.net
>>293
NG: macはハードウェア
OK: OSはmacになり、ハードウェアはMacのまま
揚げ足取るのって楽しいの?
アスペなの?

301:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/21 19:59:01.53 H55j2XV7d.net
>>293
この場合のとかの用法は明確に定義しないことを明示するための、、、、、、
とかではなくて、
説明しよう!(富山敬風)
ターゲットが特定のキーワードに高確率で定型のレスをつけることを利用して
ターゲットのレスを意図的に引き出そうとする
ドメイン特化キーワード、いわゆる釣りワードである
(↑これが言いたかっただけなのだ)
釣りとわかって付き合ってくれてありがとう

302:デフォルトの名無しさん (ブーイモ MMdf-nFTW)
17/03/21 20:48:23.31 2GTRnHWPM.net
>>283
え、そうなの?
swift界ではそういう定義なん?

303:デフォルトの名無しさん (スップ Sddf-nPNM)
17/03/21 20:59:06.98 MDnLMEwZd.net
>>292
ゲロ吐く

304:デフォルトの名無しさん (ワッチョイ 0354-QFag)
17/03/21 21:05:21.27 /qkJhfYu0.net
>>295
アスペ好き

305:デフォルトの名無しさん (ワッチョイ a392-v7qi)
17/03/21 22:39:55.95 O0GOXggs0.net
アスペとかと遊ぶためのキーワードに爆釣(釣り糸タラー
>>290
結構冗長処理の差分があるけど、どんなオプションで吐いた?
% swiftc -S -O test.swift
--
import Foundation
func main() -> Int {
let a: CGFloat = 1
let b = Int(a)
return b
}
% test -S -O test.m
--
int main() {
float a = 1;
int b = a;
return b;
}

306:デフォルトの名無しさん (ワッチョイ a392-v7qi)
17/03/21 22:40:48.24 O0GOXggs0.net
スマン、後者のコマンド間違えた
% clang -S -O test.m
で読み替えて

307:デフォルトの名無しさん (ワッチョイ bff3-QFag)
17/03/22 01:02:49.55 FLAiJ+iN0.net
>>300
当たり前だけどそのコードじゃ、どっちも


308:意味のないaの行は消えて直接整数の1を置くだけのコードに最適化された [swift] func foo(f: Float) -> Int { let i = Int(f) return i } [c] int foo(float f) { int i = f return i } これで見ればfloat→intの変換はどっちもcvttss2siの1ステップになった Swiftの方は-Oだとcvttss2siの前にprecondition由来のコードが残るけど-Ouncheckedならそれも消えて完全にCと同じ



309:デフォルトの名無しさん (ワッチョイ 23bc-JN/B)
17/03/22 01:09:43.24 +9rAaXcc0.net
var i = Inf(f)
じゃないと
int i = f;
と等価じゃなくね?
んでもってCではセミコロンいるけどね

310:デフォルトの名無しさん (ワッチョイ bff3-QFag)
17/03/22 01:15:25.70 FLAiJ+iN0.net
>>303
たしカニ
まぁ変わらんけど

311:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/22 11:24:01.24 kq8u5G9J0.net
数値の型変換がイニシャライザなのは良いけど
情報欠落するケースかどうかが変換箇所のコードで分からないのは好きじゃない
Int32→Int64のような拡張でも暗黙変換しない方針を選んだのなら
逆に縮小をラベル付きにしてコードから判別出来るようにして欲しかった
  Int32.init(_: Int16)
  Int32.init(narrow: Int64) // init(_: Int64)
  Int32.init(truncatingBitPattern: Int64)
例えばC#では拡張は暗黙変換、縮小は明示キャスト必須になっている

312:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/22 12:38:51.99 dwmeJil9d.net
そうだよな、CでもC++でもSwiftでも
自信を持ってキャストできた試しがない
何が起こるキャストなのか詳細に分かると便利だね

313:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/22 12:43:22.27 dwmeJil9d.net
>>282
こん中だとけっこう感動したのは
>switch文が強力すぎて鼻血でたー
これだな
複雑なif文の入れ子がかなりシンプルにできる

日常的に一番お世話になってるのはオプショナル型
ヌルポ踏むことが無くなったかな

314:デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
17/03/22 13:02:23.51 GcLM8SyP0.net
>>305
おれの得意なXXXと、どうして違うんだぁぁぁぁ。
よくあるよね。

315:デフォルトの名無しさん (ワッチョイ 133c-jYbd)
17/03/22 14:23:57.53 kq8u5G9J0.net
>>308
得意かどうかや違うかどうかは関係無いよ
考慮された上での仕様かどうかという話
数値型の暗黙変換を無くしたことは前進だと見ている
しかしその結果、拡張変換の構文が縮小変換に追いついてしまい
非対称性による利点が失われてしまった

316:デフォルトの名無しさん (スッップ Sddf-CJUg)
17/03/22 15:23:52.69 dwmeJil9d.net
>>308
まさにこれ
Perl風の正規表現サポート構文を全言語で採用しないなんて信じられない!
文字列処理なんてプログラミングの基本中の基本でしょ!
一文字ずつの処理をプログラマが書くなんてあり得ない!!

待ってるぜSwift5

317:デフォルトの名無しさん (ササクッテロリ Spd3-Lcoi)
17/03/23 09:17:23.40 9ddE+onEp.net
>>307
1.x初期にif letを子入れしてた時はシネと思ってたけど今のif, switchは便利よな
パクリ元と思われるrustより使い勝手よい

318:デフォルトの名無しさん (スップ Sdea-6g7I)
17/03/27 13:39:55.07 9ObHSaYAd.net
型推論削除まだー?

319:デフォルトの名無しさん (ワッチョイ 8a32-mQmu)
17/03/27 14:34:32.14 jJTT24eR0.net
>一文字ずつの処理をプログラマが書くなんてあり得ない!!
いや、じゃあ誰が書くんだおw
アプリプログラマ、だけな、それ言うの
あと、1文字ずつの処理「も」かける、というのが便利
とりあえず「デフォ」を便利にして欲しい

320:デフォルトの名無しさん (ササクッテロラ Spd3-1VOV)
17/03/27 20:33:27.48 d0WItvzjp.net
勉強で単純なカメラアプリを作ってるんだけど、せっかくだからフレーム�


321:ニサイズだけはオリジナルにしたい でもやり方がよく分からなくて困ってる 良ければ誰かヒントをくれないだろうか



322:デフォルトの名無しさん (ワッチョイ 433c-+Vyq)
17/03/27 20:57:49.35 MSHIb1n80.net
UIWindowクラスでググったら?
と思ったら、すぐ見つかった。
“UIImagePickerController camera​Overlay​View”でググレカス
URLリンク(chicketen.blog.jp)

323:デフォルトの名無しさん (スププ Sd4a-1VOV)
17/03/28 11:35:36.43 t5HIbgfEd.net
>>313
>いや、じゃあ誰が書くんだおw
>アプリプログラマ、だけな、それ言うの
もちろん、カーネルプログラマや、ライブラリプログラマの皆さんの成果を美味しくいただけるという前提の話です。
アリガタヤ~
なんか、入力が文字列だと、自分でプログラム組んで処理する以外の方法を思いつかない人が多くて困るのだ。

324:デフォルトの名無しさん (ササクッテロル Sp17-kVPK)
17/03/30 06:19:29.38 W8d4MsA8p.net
>>315
ありがとう
それを足がかりに頑張ってみるわ

325:デフォルトの名無しさん (アウアウオー Sa1f-mlhd)
17/03/30 08:42:10.41 9khgRv1/a.net
URLリンク(goo.gl)
これは嫌だなー。。本当?

326:デフォルトの名無しさん (ワッチョイ 83f3-c5kk)
17/03/30 13:01:15.79 9EoNq1220.net
guro

327:デフォルトの名無しさん (ササクッテロリ Sp17-K8zl)
17/04/01 12:38:15.61 rvZpcbcFp.net
let isFool = false
let YouAreFool = !(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!isFool))))))))))))))))))))))
今年のグーグルのエイプリルフールネタはイマイチだね

328:デフォルトの名無しさん (アウアウエー Sa8a-qYl2)
17/04/07 23:27:50.08 A4pCb4U0a.net
過疎りすぎだろ
お前らやる気あんのか
let π = Double.pi

329:デフォルトの名無しさん (ワッチョイ f354-TNox)
17/04/08 09:36:51.95 jKlH6mxl0.net
>>321
>let π = Double.pi
おぉー、動くね!

330:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 09:37:52.65 FmwPLc4P0.net
そんなのに驚かれても...
とっくの昔にJavaでも動くけどな...

331:デフォルトの名無しさん (ワッチョイ f354-TNox)
17/04/08 10:33:14.51 jKlH6mxl0.net
>>323
俺、変数名に英数記号以外が来ると、拒否反応を起こす。
古いのかなぁ?俺って。
だから、let pi = Double.pi
が好みなんだけど。

332:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 10:36:29.24 FmwPLc4P0.net
>>324
普通は使わない
Javaでもutf8対応を示すためのただのネタで、これを本気で使ってる奴はいないだろう

333:デフォルトの名無しさん (アウアウエー Sa8a-qYl2)
17/04/08 10:50:30.96 63G3fI6va.net
Option + P でπが入力できることは当然知ってるよな?

334:デフォルトの名無しさん (スプッッ Sdb2-YI5e)
17/04/08 11:15:21.87 zwbfOwFqd.net
知らねぇだろお前ら感がにじみ出すぎててイタい

335:デフォルトの名無しさん (アウアウエー Sa8a-qYl2)
17/04/08 11:36:08.72 63G3fI6va.net
なんだ知らなかったのか
1つ賢くなったな

336:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 12:01:07.48 FmwPLc4P0.net
聞いてもいないのにいきなり言い出して確かにイタいな

337:デフォルトの名無しさん (ササクッテロラ Sp57-8GAO)
17/04/08 12:17:13.50 59elDVKip.net
急にJavaを比較対象として出して草
ObjCと比較しろやw

338:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 12:21:16.17 FmwPLc4P0.net
>>330
??

339:デフォルトの名無しさん (ワッチョイ f354-TNox)
17/04/08 12:50:51.72 jKlH6mxl0.net
>>326
うぅー。知らんかった。というか、忘れてた。
昔ΩがOption-Zで入力できるのを使ったが、それっきり。

340:デフォルトの名無しさん (ワッチョイ f354-TNox)
17/04/08 12:53:01.39 jKlH6mxl0.net
>>330
Javaとの比較歓迎なんだけど、俺は。
Javaで仕事した事ないけど、情報処理の試験対策で勉強したし。
Design Patternの本読むのに、Javaで理解


341:したし。



342:デフォルトの名無しさん (ワッチョイ f73c-D6lx)
17/04/08 13:26:15.68 bcrLvy920.net
4マダァ?

343:デフォルトの名無しさん (ササクッテロラ Sp57-8GAO)
17/04/08 13:33:22.85 59elDVKip.net
iアプリやAndroidくらいしかやったことないと比較はJavaで適当だろうけど
動作OSとかランタイムの在り方とか言語文法の系譜とか違いすぎる
同じAppleOSで動いて、.soランタイムだけ要して、without C程度の系譜の同じ土俵で評価すべきじゃね
自分が知ってる言語って程度で比較に挙げるならC#でもGoでもRubyでもなんでもアリだからw

344:デフォルトの名無しさん (ワッチョイ f73c-D6lx)
17/04/08 14:39:02.66 bcrLvy920.net
非ASCII識別子のネタなんて何の言語引き合いに出しても別に問題ないっしょ

345:デフォルトの名無しさん (ワッチョイ 32f3-qYl2)
17/04/08 16:52:22.92 EanGPAz+0.net
おっπ

346:デフォルトの名無しさん (ワッチョイ fb0f-B+LC)
17/04/08 17:04:27.68 FmwPLc4P0.net
はい

347:デフォルトの名無しさん (ワッチョイ 32f3-qYl2)
17/04/09 16:19:12.39 dBjEGHWC0.net
揉ませろ

348:デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
17/04/13 16:26:07.95 P0VwbMdt0.net
メモリー管理方式取り入れるってニュース見かけたんだけど
Swiftまた互換性無くなるんか?

349:デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
17/04/13 16:43:28.23 0o/hjfdWp.net
>>340
>>69

350:デフォルトの名無しさん (アウアウオー Sabf-vZSP)
17/04/13 16:50:05.36 JlstuCPca.net
「タイム互換」短すぎやでほんま
タイム互換いいたいだけやけどな

351:デフォルトの名無しさん (アウアウエー Sabf-vZSP)
17/04/13 16:58:45.96 Z4M4iBLva.net
      _          __
     /  \       /    \
   /     \    /       \
  /  / ̄ ̄\ \ / / ̄ ̄ ̄\__\
// ̄     / ̄| ̄ | ̄`くヽ__/>   |  \
 ̄        `ー'`ー'`ー'/⊿⊿ヽ    ̄ ̄
           |   | / 、/⌒ヽ,ヽ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           |   | | | 〇 O) |   < ブタモ オダテリャ キニノボル。。。
           |  __|_> ̄ ̄ ̄く       \___________
           |  (___ノ      |
           |  __|_|_     /e
           |  (___ノ、___/
           |    |
           |   |
           |   |
           |   |
           |   |
           |   |

352:デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
17/04/13 17:49:06.53 P0VwbMdt0.net
見つけた。つい最近のやつ
swiftメモリオーナシップのマニフェストが公開
URLリンク(www.infoq.com)

353:デフォルトの名無しさん (アウアウエー Sabf-vZSP)
17/04/13 17:53:40.70 Z4M4iBLva.net
オナニストに空目した

354:デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
17/04/13 18:33:03.91 WsZTJ2Pb0.net
またInfoQは2ヶ月前の話を今更ニュースにして
今日の本当の界隈ニュースはABI Dashboardがやっと公開されたこと

355:デフォルトの名無しさん (ワッチョイ 5b54-axuq)
17/04/13 20:46:27.09 gaxJh+J40.net
>>344
翻訳がひどいなぁ。
ChridではなくChrisだし、マニフェストではなく、「今後の予定」だし。

356:デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
17/04/13 21:43:29.30 0o/hjfdWp.net
結局、C++11 unique_ptrの文法ラップなのかな
ObjCでも使えるなら使いたいから頼むよー

357:デフォルトの名無しさん (ワッチョイ 4b3c-HE/W)
17/04/14 00:10:47.26 CJipXrOe0.net
Rust inspiredとのことだからunique_ptrなんてレベルじゃない
ライフタイムかそれに類するものを導入する気だろう

358:デフォルトの名無しさん (ワッチョイ 1f3c-xLT8)
17/04/17 11:21:13.44 rZd85UOy0.net
Swift4で何がかわりそうなのか
URLリンク(qiita.com)

359:デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
17/04/17 11:34:40.27 H6wmE3lW0.net
SE-0110
Swift3.1
let fn1: (Int, Int) -> Voi


360:d = { x in // some procedure } Swift4 let fn1: ((Int, Int)) -> Void = { x in // some procedure } Intを要素とするtupleを引数に取るclosureの記述方法が、変わるらしい。 (Int, Int)型引数は、((Int, Int))としてx.0, x.1って感じでアクセスする。ってこった。



361:デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
17/04/17 11:41:37.59 H6wmE3lW0.net
func curry<A, B, C>(_ f: @escaping (A, B) -> C) -> (A) -> (B) -> C {
return { x in
{ y in f(x, y) }
}
}
この関数の読み方が判らん!
戻り値が
(A) -> (B) -> C
って事は、
1. A型の引数を受け取り、(B) -> Cなるclosureを返すclosureが戻り値
2. (A) -> (B)なるclosureを受け取りC型を返すclosureが戻り値
どっちだ?

362:デフォルトの名無しさん (スプッッ Sd3f-IVUN)
17/04/17 12:20:26.64 vkFfzl9Jd.net
>>352
AとBの二つの引数を持つclosureを
指定したAに値を固定した場合のBだけを引数にもつclosureを返す、というclosureに変換する関数

363:デフォルトの名無しさん (ワッチョイ fbf9-kKgC)
17/04/17 16:19:08.73 3GD20cJp0.net
>>352
1の方だね

364:デフォルトの名無しさん (ワッチョイ eb92-D+C1)
17/04/17 17:25:42.88 D/VW2xRY0.net
もういい加減にしてほしいな
言語ヲタが「ボクチンが考えた最高の言語」遊びしてるようにしか見えない

365:デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
17/04/17 18:59:19.87 nd1F7ywi0.net
批判なら具体的に
でなければアンチスレへ

366:デフォルトの名無しさん (アウアウオー Sabf-vZSP)
17/04/17 19:03:02.31 kDXw+CZ7a.net
->が出てきたらその時点で->より前が引数、->より後ろが戻り値

367:デフォルトの名無しさん (ワッチョイ 5b54-axuq)
17/04/17 20:39:28.09 oD+wMWyY0.net
>>357
なるホドォ
((A) -> B) -> C
これは、
引数 ((A) -> B)
戻り値 C
ですね。

368:デフォルトの名無しさん (ワッチョイ 5b54-axuq)
17/04/17 20:40:25.07 oD+wMWyY0.net
>>358
RxSwiftのソースみてると、こんなんばっかり。
Reactive.itemsメソッドとか!

369:デフォルトの名無しさん (アウアウウー Saaf-vZSP)
17/04/17 20:46:01.79 lXU86btga.net
ヒマなんですね

370:デフォルトの名無しさん (エムゾネ FF3f-IVUN)
17/04/17 21:24:11.38 6RZC9xguF.net
>>354
まあ、curry化ってそういうものだしね

371:デフォルトの名無しさん (アウアウウー Saaf-vZSP)
17/04/17 21:25:12.82 lXU86btga.net
インド人もびっくりだよね

372:デフォルトの名無しさん (ワッチョイ 4b3c-5IwN)
17/04/17 22:47:26.87 +gxNPbQK0.net
>>355
SE-0110でググって最初のリンク開けば Bug: SR-2008 が目に入って
バグ対応なんだな、くらいはすぐに察せる
目的や理由も捉えないと余計に遠回りになるだけだぞ

373:デフォルトの名無しさん (ワッチョイ 3b0f-n2Cn)
17/04/17 23:10:09.48 /M+7HM4c0.net
>>350
いいからさっさと++、--、for(;;)を復活させろ

374:デフォルトの名無しさん (ワッチョイ 3b0f-n2Cn)
17/04/17 23:10:51.44 /M+7HM4c0.net
>>352
くっっっそ読みにくいな
さすがswiftだわ

375:デフォルトの名無しさん (ササクッテロラ Sp6f-+fOQ)
17/04/18 00:02:25.56 xQgWcwpBp.net
>>355は4で破壊変更あることを今更知ったnewbieじゃないかな
破壊しないswiftなんてswiftじゃないと思って使ってるけど、3で安定したと思っちゃった子はそこそこいそう

376:デフォルトの名無しさん (ワッチョイ 3b0f-bNqD)
17/04/18 00:31:05.68 nxzSbT3m0.net
>>355
こんなぶれぶれの独善言語についてってる奴の気が知れんわ

377:デフォルトの名無しさん (アウアウウー Saaf-vZSP)
17/04/18 00:36:29.63 84Yej/faa.net
そんな言語のスレをヲチしてるお前もなー

378:デフォルトの名無しさん (ワッチョイ fbf9-kKgC)
17/04/18 10:13:46.23 GdlQD+8N0.net
型表記中の「->」は右結合ってことでいいんだよね?

379:デフォルトの名無しさん (ワッチョイ 1ff3-vZSP)
17/04/18 12:14:40.44 Q87oUFLG0.net
URLリンク(developer.apple.com)


380:ceptual/Swift_Programming_Language/Types.html#//apple_ref/swift/grammar/function-type If a function type includes more than a single arrow (->), the function types are grouped from right to left. For example, the function type (Int) -> (Int) -> Int is understood as (Int) -> ((Int) -> Int) ―that is, a function that takes an Int and returns another function that takes and returns an Int. 引数は必ず()で囲まないといけないから、もし ((Int) -> (Int)) -> Int なら前半の()が必須 そういう意味でも (Int) -> ((Int) -> Int) としか解釈できない



381:デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
17/04/18 12:45:37.54 3Ay0w4VK0.net
>>370
THX
原則は、
1. 引数は()で囲む。囲まないと、error: require parentheses
2. 右から左方向へグループ化
例:
(S) -> (T) -> (U)

(S) -> ((T) -> (U))
と解釈される。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch