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:ChbPWtRt0704デフォルトの名無しさん (ワッチョイ 0f1f-9J/J)
2017/05/27(土) 22:31:17.31ID:SDTaiU/Z0705デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/27(土) 22:38:43.72ID:aL4+kPgB0 >>704
そこに
As an optimization, when the argument is a value stored at a physical address in memory, the same memory location is used both inside and outside the function body. The optimized behavior is known as call by reference
とも書いてある。参照を渡して最適化されると。
それに依存して関数内で参照元にアクセスするなとも書いてあるけど
そこに
As an optimization, when the argument is a value stored at a physical address in memory, the same memory location is used both inside and outside the function body. The optimized behavior is known as call by reference
とも書いてある。参照を渡して最適化されると。
それに依存して関数内で参照元にアクセスするなとも書いてあるけど
706デフォルトの名無しさん (ワッチョイ 0f1f-9J/J)
2017/05/27(土) 22:41:57.41ID:SDTaiU/Z0707デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/27(土) 22:47:16.42ID:aL4+kPgB0 >>706
Playgroundにコピペして試してみればいいだろ
Playgroundにコピペして試してみればいいだろ
708デフォルトの名無しさん (ワッチョイ 0f1f-9J/J)
2017/05/27(土) 22:49:30.62ID:SDTaiU/Z0 Write your code using the model given by copy-in copy-out, without depending on the call-by-reference optimization,
so that it behaves correctly with or without the optimization.
…最適化と言い張ってるがこれはひどい
so that it behaves correctly with or without the optimization.
…最適化と言い張ってるがこれはひどい
709デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/27(土) 23:01:24.62ID:aL4+kPgB0 このぐらいの最適化はやってくれた方がありがたい
参照渡しの方が確実にパフォーマンス上がるし、通常の使い方で副作用もない
副作用があるようなら書き方に問題があるだろ
inoutで受けた変数のオリジナルにアクセスするコードにワーニングぐらい出してくれたら
とも思うけど、まだそこまで面倒は見きれないんだろ
ただ、最適化の恩恵にあずかりたいなら、willSetなんかは入れない方がいいみたいだな
参照渡しの方が確実にパフォーマンス上がるし、通常の使い方で副作用もない
副作用があるようなら書き方に問題があるだろ
inoutで受けた変数のオリジナルにアクセスするコードにワーニングぐらい出してくれたら
とも思うけど、まだそこまで面倒は見きれないんだろ
ただ、最適化の恩恵にあずかりたいなら、willSetなんかは入れない方がいいみたいだな
710デフォルトの名無しさん (ワッチョイ 9ff3-UHtP)
2017/05/27(土) 23:07:17.91ID:Hem7AZxu0711デフォルトの名無しさん (ワッチョイ 6b3c-9J/J)
2017/05/27(土) 23:47:08.68ID:7vlRlcaj0 willSetがあるとmutating funcもself自体がcopy-in copy-outになった
これもリファレンスのどこかにあるのかな
struct A{
var v = [Int]()
var onAppend: (()->())? = nil
mutating func f() {
v.append(1)
onAppend?()
}
}
do {
var a = A()
a.onAppend = { a.v.append(2) }
a.f()
print("willSetなし", a.v) // [1, 2]
}
do {
var a = A() {willSet{}}
a.onAppend = { a.v.append(2) }
a.f()
print("willSetあり", a.v) // [1]
}
willSetなし [1, 2]
willSetあり [1]
これもリファレンスのどこかにあるのかな
struct A{
var v = [Int]()
var onAppend: (()->())? = nil
mutating func f() {
v.append(1)
onAppend?()
}
}
do {
var a = A()
a.onAppend = { a.v.append(2) }
a.f()
print("willSetなし", a.v) // [1, 2]
}
do {
var a = A() {willSet{}}
a.onAppend = { a.v.append(2) }
a.f()
print("willSetあり", a.v) // [1]
}
willSetなし [1, 2]
willSetあり [1]
712デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/28(日) 00:12:22.92ID:Kbiso++70 willSet/didSetの挙動が怪しすぎるな
バグなのかもな
バグなのかもな
713デフォルトの名無しさん (ワッチョイ 6b3c-9J/J)
2017/05/28(日) 08:47:45.67ID:tTxkySJm0 >>712
いや挙動的には予想通りだよ
didSetはともかく、willSetの方は呼ばれたコード内では「変更前のオリジナル変数」と「変更後のnewValue」が用意されてるから別の実体作って変更してる
想像だけどinout引数を持つ関数側はバイナリコードレベルでは常に参照で受取るようになっていて
willSetがある変数でmutating funcやinout渡しをすると、呼ぶ側が一時変数作ってそれを渡すコードを生成してると思う
var a = A() { willSet{ } }
a.f() //mutating func f()
↓
var a = A()
func a_willSet(_ newValue:A) { }
do {
var tmp = a
tmp.f()
a_willSet(tmp)
a = tmp
}
inoutの場合は a.f()とtmp.f() が f(&a)とf(&tmp)になるイメージ
いや挙動的には予想通りだよ
didSetはともかく、willSetの方は呼ばれたコード内では「変更前のオリジナル変数」と「変更後のnewValue」が用意されてるから別の実体作って変更してる
想像だけどinout引数を持つ関数側はバイナリコードレベルでは常に参照で受取るようになっていて
willSetがある変数でmutating funcやinout渡しをすると、呼ぶ側が一時変数作ってそれを渡すコードを生成してると思う
var a = A() { willSet{ } }
a.f() //mutating func f()
↓
var a = A()
func a_willSet(_ newValue:A) { }
do {
var tmp = a
tmp.f()
a_willSet(tmp)
a = tmp
}
inoutの場合は a.f()とtmp.f() が f(&a)とf(&tmp)になるイメージ
714デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/28(日) 09:31:38.11ID:o7LOyvX/0 この挙動を理解してなければ、structにwillSet/didSetを実装してパフォーマンスに意図しない影響を与える可能性があるな
715デフォルトの名無しさん (ワッチョイ 7b46-sPQt)
2017/05/28(日) 11:21:48.67ID:6qJqAaY90716デフォルトの名無しさん (ワッチョイ 9ff3-UHtP)
2017/05/28(日) 11:31:20.31ID:z3zgF0Nw0 mutatingはselfをinoutで渡す
a.f() // これは
A.f(&a)() // これと同じ
なので一般のinout引数と同様にmutatingメソッド内のselfもセマンティクス的にはcopy-in copy-out
ただmutatingが暗黙にselfをinoutで渡すって説明はリファレンスには見つけられなかった
リポジトリのdocsに放り込まれてる文書群ではしばしば言及されてるけど
a.f() // これは
A.f(&a)() // これと同じ
なので一般のinout引数と同様にmutatingメソッド内のselfもセマンティクス的にはcopy-in copy-out
ただmutatingが暗黙にselfをinoutで渡すって説明はリファレンスには見つけられなかった
リポジトリのdocsに放り込まれてる文書群ではしばしば言及されてるけど
717デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/28(日) 12:29:40.83ID:o7LOyvX/0 気軽にプロパティ変えたつもりの1行で、コピーが3回も(うち2回は配列全体のコピー)発生するのね
structのwillSetは曲者だな
struct Weapon {
var name: String {
willSet { print("new wepon name = ¥(newValue)") }
}
}
struct Monster {
var name: String
var weapons: [Weapon] {
willSet { print("new weapons = ¥(newValue)") }
}
}
var monsters = [
Monster(name: "Goblin", weapons: [Weapon(name: "Knife")]),
Monster(name: "Orc", weapons: [Weapon(name: "Sword")]),
Monster(name: "Dragon", weapons: [])
] {
willSet { print("new monsters = ¥(newValue)") }
}
monsters[1].weapons[0].name = "Mace"
// output
/*
new weapon name = mace
new weapons = [Weapon(name: "Mace"]
new monsters = [Monster(name: "Goblin", weapons: [Weapon(name: "Knife")]), Monster(name: "Orc", weapons: [Weapon(name: "Mace")]), Monster(name: "Dragon", weapons: [])]
*/
structのwillSetは曲者だな
struct Weapon {
var name: String {
willSet { print("new wepon name = ¥(newValue)") }
}
}
struct Monster {
var name: String
var weapons: [Weapon] {
willSet { print("new weapons = ¥(newValue)") }
}
}
var monsters = [
Monster(name: "Goblin", weapons: [Weapon(name: "Knife")]),
Monster(name: "Orc", weapons: [Weapon(name: "Sword")]),
Monster(name: "Dragon", weapons: [])
] {
willSet { print("new monsters = ¥(newValue)") }
}
monsters[1].weapons[0].name = "Mace"
// output
/*
new weapon name = mace
new weapons = [Weapon(name: "Mace"]
new monsters = [Monster(name: "Goblin", weapons: [Weapon(name: "Knife")]), Monster(name: "Orc", weapons: [Weapon(name: "Mace")]), Monster(name: "Dragon", weapons: [])]
*/
718デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/28(日) 12:30:23.95ID:o7LOyvX/0 クラスで実装すれば、wellSetあってもコピーはプロバティに対しての一回だけ
class Weapon {
var name: String {
willSet { print("new wepon name = ¥(newValue)") }
}
init(name: String) {
self.name = name
}
}
class Monster {
var name: String
var weapons: [Weapon] {
willSet { print("new weapons = ¥(newValue)") }
}
init(name: String, weapons: [Weapon]) {
self.name = name
self.weapons = weapons
}
}
var monsters = [
Monster(name: "Goblin", weapons: [Weapon(name: "Knife")]),
Monster(name: "Orc", weapons: [Weapon(name: "Sword")]),
Monster(name: "Dragon", weapons: [])
] {
willSet { print("new monsters = ¥(newValue)") }
}
monsters[1].weapons[0].name = "Mace"
// output
/*
new wepon name = Mace
*/
class Weapon {
var name: String {
willSet { print("new wepon name = ¥(newValue)") }
}
init(name: String) {
self.name = name
}
}
class Monster {
var name: String
var weapons: [Weapon] {
willSet { print("new weapons = ¥(newValue)") }
}
init(name: String, weapons: [Weapon]) {
self.name = name
self.weapons = weapons
}
}
var monsters = [
Monster(name: "Goblin", weapons: [Weapon(name: "Knife")]),
Monster(name: "Orc", weapons: [Weapon(name: "Sword")]),
Monster(name: "Dragon", weapons: [])
] {
willSet { print("new monsters = ¥(newValue)") }
}
monsters[1].weapons[0].name = "Mace"
// output
/*
new wepon name = Mace
*/
719デフォルトの名無しさん (ササクッテロル Sp0f-Kfqe)
2017/05/28(日) 12:35:53.43ID:eqNgb5P3p Swift初期にJavaScriptに似てるからWeb屋が参入してくるとか言ってた人もいたけど全然違うしSwiftはObjective-Cより仕様が複雑になってきたね
でもおかしなコードはコンパイラがビシバシ教えてくれるし仕様を詳しく知らなくてもとりあえずコードを書く事はできるかな?
でもおかしなコードはコンパイラがビシバシ教えてくれるし仕様を詳しく知らなくてもとりあえずコードを書く事はできるかな?
720デフォルトの名無しさん (ワッチョイ dbee-Uhxf)
2017/05/28(日) 22:04:52.22ID:ls5tm5z70 Swiftけっこう難しい
Objective-Cは形式張っていてコードがやたらと長くなるだけで実はそんなに難しくない
Objective-Cは形式張っていてコードがやたらと長くなるだけで実はそんなに難しくない
721デフォルトの名無しさん (ワッチョイ fb54-WkB/)
2017/05/28(日) 22:35:10.01ID:7/a46AkG0722デフォルトの名無しさん (ワッチョイ 0fa3-iTU4)
2017/05/28(日) 22:44:58.49ID:ew7wH7J40 詰め込みすぎて開発者のスキルでコードが変わりすぎるのが難点
723デフォルトの名無しさん (スップ Sdbf-sPQt)
2017/05/28(日) 22:57:25.17ID:Y/jTFKWEd >>720
C知ってればハードル高くないからなObjCは
C知ってればハードル高くないからなObjCは
724デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/28(日) 23:22:08.09ID:o7LOyvX/0 そのCがハードル高いからな初心者には
725デフォルトの名無しさん (ワッチョイ 7b46-NZKg)
2017/05/28(日) 23:28:56.75ID:6qJqAaY90 SwiftとCのどっちがハードル高いかって言ったらCとは言えないけどな
Cのシンタックスをベースにしてる言語は多いから、初学者にSwiftとC
どっちをやった方がいいかって言われたら間違いなくCだわ
Cのシンタックスをベースにしてる言語は多いから、初学者にSwiftとC
どっちをやった方がいいかって言われたら間違いなくCだわ
726デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/28(日) 23:30:24.66ID:o7LOyvX/0 初心者にポインターは結構ハードル高いと思うけど
あとメモリ管理にシビアな所とか
あとメモリ管理にシビアな所とか
727デフォルトの名無しさん (ワッチョイ 7b46-sPQt)
2017/05/29(月) 00:25:02.54ID:lFCv8yRy0 Cもわからんようなもやしエンジニアが増えると思うと先が思いやられる
ソフト屋もハードウェアに近いプリミティブな部分の理解は必要なんだけとな
そういう意味でCは高級アセンブラ的なバランスがちょうどいい
ソフト屋もハードウェアに近いプリミティブな部分の理解は必要なんだけとな
そういう意味でCは高級アセンブラ的なバランスがちょうどいい
728デフォルトの名無しさん (アウアウエー Sa3f-Kfqe)
2017/05/29(月) 00:38:37.93ID:21264BYsa >>726
ポインタが難しいって言ったって、結局ポインタ的なメモリの知識はあった方がデバッグでメモリ周り疑う疑わないに直結するしなぁ。。。
ポインタが難しいって言ったって、結局ポインタ的なメモリの知識はあった方がデバッグでメモリ周り疑う疑わないに直結するしなぁ。。。
729デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/29(月) 00:47:58.23ID:3RO08/qX0 でも今は簡単なゲーム作りたいとかなら特にポインタの知識なくても作れちゃうからなぁ
初心者にC言語でゲーム作ってだと難しいと思うけど、Swiftなら割と簡単
モグラたたきとかジャンケンゲーム程度なら初心者でも2,3日で作れるかも
初心者にC言語でゲーム作ってだと難しいと思うけど、Swiftなら割と簡単
モグラたたきとかジャンケンゲーム程度なら初心者でも2,3日で作れるかも
730デフォルトの名無しさん (アウアウエー Sa3f-Kfqe)
2017/05/29(月) 00:57:45.02ID:21264BYsa 誰もポインタないと作れないなんて言ってない。
ポインタの知識はトラブった時にトラブルの原因の候補にメモリが上がるか?どう状態かを推測出来るか?ってのに直結する。
ポインタと言うか、メモリの構造を知らなけりゃトラブルの原因として候補にすら上がらない。
下手すれば永延と原因分からないまま、プログラムは未完に終わる。
ポインタの知識はトラブった時にトラブルの原因の候補にメモリが上がるか?どう状態かを推測出来るか?ってのに直結する。
ポインタと言うか、メモリの構造を知らなけりゃトラブルの原因として候補にすら上がらない。
下手すれば永延と原因分からないまま、プログラムは未完に終わる。
731デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/29(月) 01:03:25.64ID:3RO08/qX0 そんなこと言い出したら究極的にはコンパイラの癖とかハードの特性とかまで知らないとデバッグできないことになる
初心者にそこまで求めるのは余りにも遠い道のりになる
初心者にそこまで求めるのは余りにも遠い道のりになる
732デフォルトの名無しさん (アウアウエー Sa3f-Kfqe)
2017/05/29(月) 01:19:59.07ID:21264BYsa そこまで言わんが、初心者と言えどもCPUとメモリの仕組みは理解してからプログラミングは始めて欲しいものだが。
体験して見たいだけなら兎も角、プログラマになりたいんならね。
体験して見たいだけなら兎も角、プログラマになりたいんならね。
733デフォルトの名無しさん (ワッチョイ 7bf5-vlKO)
2017/05/29(月) 06:40:45.44ID:DGY6L2yw0 kotlin nativeがllvm対応してるらしいのでiosでもkotlin使えそう。
となればswiftはもういいかな。
となればswiftはもういいかな。
734デフォルトの名無しさん (ササクッテロリ Sp0f-3U4p)
2017/05/29(月) 07:01:38.32ID:L9ed4gjcp フフってなった
昔、SwiftもLLVMだからどこでも動くって言ってたなぁ
まぁKotlinは頑張ってポーティングしてるようだから
実用性はさておき動くんだろうけど
昔、SwiftもLLVMだからどこでも動くって言ってたなぁ
まぁKotlinは頑張ってポーティングしてるようだから
実用性はさておき動くんだろうけど
735デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/29(月) 08:51:21.58ID:A7rCPaLD0736デフォルトの名無しさん (スプッッ Sdbf-iTU4)
2017/05/29(月) 09:10:28.76ID:96NrxdYRd737デフォルトの名無しさん (ワッチョイ 2b72-Kfqe)
2017/05/29(月) 10:41:09.25ID:M6frmmyd0 ポインタとか分からんレベルの人にはやりたい放題出来ないがんじがらめの世界の方がいい気はする
柔軟性はObjective-Cで安全性はSwiftなイメージ
柔軟性はObjective-Cで安全性はSwiftなイメージ
738デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/29(月) 11:13:19.98ID:A7rCPaLD0739デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/29(月) 11:14:56.30ID:A7rCPaLD0 It is not a fully functional release yet,
Kotlin/Nativeがどの程度動くのか?気になる。
Kotlin/Nativeがどの程度動くのか?気になる。
740デフォルトの名無しさん (エムゾネ FFbf-4cAo)
2017/05/29(月) 11:27:53.51ID:trx2RJe/F >>729
ポインタ分からないって人は、参照型の値型の違いが理解出来なくないか?
ポインタ分からないって人は、参照型の値型の違いが理解出来なくないか?
741デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/29(月) 12:04:20.43ID:3RO08/qX0 参照型と値型の違いがわからなくても使い方さえ理解できれば簡単なアプリは作れるからな
ある程度の最適化はコンパイラがやってくれるし、ハードの性能も上がってるから、多少の冗長性は無視できる
C言語だとそうはいかない
ポインタを知らないとまずまともなアプリはつくれない
外部のライブラリを利用する場合もポインタの知識は必須になる
ポインタの理解が参照型の理解の助けにはなるだろうけど厳密にはポインタと参照型は同じものでもないし
ある程度の最適化はコンパイラがやってくれるし、ハードの性能も上がってるから、多少の冗長性は無視できる
C言語だとそうはいかない
ポインタを知らないとまずまともなアプリはつくれない
外部のライブラリを利用する場合もポインタの知識は必須になる
ポインタの理解が参照型の理解の助けにはなるだろうけど厳密にはポインタと参照型は同じものでもないし
742デフォルトの名無しさん (スプッッ Sdbf-4cAo)
2017/05/29(月) 12:14:04.16ID:idSzy2HYd それは、ポインタを知らなくても使い方さえ覚えれば簡単なアプリは作れる、っていっても同じじゃないか?
743デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/29(月) 12:33:55.33ID:3RO08/qX0 ポインタの場合は概念を理解しないで使い方だけ覚えるってのはちと無理がある
Swiftの参照型は概念をきっちり理解できなくても、大概動くものは作れるし、変なことやろうとしてもIDEやコンパイラが注意してくれる
Swiftの参照型は概念をきっちり理解できなくても、大概動くものは作れるし、変なことやろうとしてもIDEやコンパイラが注意してくれる
744デフォルトの名無しさん (スプッッ Sdbf-iTU4)
2017/05/29(月) 13:11:45.84ID:96NrxdYRd >>740
ポインタしらなくても挙動でわかるだろ
ポインタしらなくても挙動でわかるだろ
745デフォルトの名無しさん (スプッッ Sdbf-4cAo)
2017/05/29(月) 13:27:25.51ID:idSzy2HYd746デフォルトの名無しさん (スプッッ Sdbf-iTU4)
2017/05/29(月) 13:29:35.62ID:96NrxdYRd747デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/29(月) 13:38:22.24ID:3RO08/qX0 そもそも初心者は参照型だ値型だとあまり意識しないんじゃないか
意識しなくてもコードは書ける
Swiftならね
意識しなくてもコードは書ける
Swiftならね
748デフォルトの名無しさん (ワッチョイ 7b46-NZKg)
2017/05/29(月) 21:45:25.45ID:lFCv8yRy0 >>741
だからObjective-Cはいろいろと素晴らしいと考える人が少なくないんだと思うけどな
だからObjective-Cはいろいろと素晴らしいと考える人が少なくないんだと思うけどな
749デフォルトの名無しさん (ワッチョイ fb54-2haG)
2017/05/29(月) 21:47:34.02ID:e8ZpNhPJ0 今後出現して欲しい本
SwiftプログラマのためのKotlin入門
Androidアプリ作りたいけど、Javaは嫌なんだよなぁ。
SwiftプログラマのためのKotlin入門
Androidアプリ作りたいけど、Javaは嫌なんだよなぁ。
750デフォルトの名無しさん (ワッチョイ 0fa3-iTU4)
2017/05/29(月) 21:59:32.56ID:HMZ0UBYT0 >>749
そんな本なくてもswiftの簡単版みたいなもんだから余裕でかける
そんな本なくてもswiftの簡単版みたいなもんだから余裕でかける
751デフォルトの名無しさん (ワッチョイ 7bf5-vlKO)
2017/05/30(火) 01:08:42.87ID:Q1uksSWN0 iosもandroidも共通で言えることなんだけどさ、もう一段フレームワークが欲しい。どっちもuiライブラリ止まりで、
全体の管理を行う部分が開発者任せで、正直困る。一画面アプリ止まりならそれでもいいんだけどさ。
全体の管理を行う部分が開発者任せで、正直困る。一画面アプリ止まりならそれでもいいんだけどさ。
752デフォルトの名無しさん (ワッチョイ 0fa3-iTU4)
2017/05/30(火) 01:09:28.67ID:YGoyijxE0 ???
753デフォルトの名無しさん (ワッチョイ 7bdf-0q68)
2017/05/30(火) 01:21:48.80ID:zlRLzU390 >>751
例えば?
例えば?
754デフォルトの名無しさん (ワッチョイ 7bf5-vlKO)
2017/05/30(火) 02:18:06.30ID:Q1uksSWN0 ステート管理だけで言えばreactのreduxみたいなやつとか。
あれってファイルの置き場所とかもある程度誘導されるから迷いが減るんだよね。
あれってファイルの置き場所とかもある程度誘導されるから迷いが減るんだよね。
755デフォルトの名無しさん (ササクッテロリ Sp0f-3U4p)
2017/05/30(火) 09:52:12.97ID:zOXcPiC1p ソースファイルの置場所も公式に決まってないSwiftに何期待してるのか
まずはSwift Package ManagerとXcodeで共通化することから始めよう
まずはSwift Package ManagerとXcodeで共通化することから始めよう
756デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/30(火) 10:07:35.91ID:LRk+Le9O0 俺もパッケージマネージャが複数あるのが好かんなぁ。
1. Carthage
2. CocoaPods
3. Swift Package Manager
俺は1.がxcodeprojへの変更が少なくて好みだ。
2.はxcodeprojをどう変更してるのかが、見えない。
1. Carthage
2. CocoaPods
3. Swift Package Manager
俺は1.がxcodeprojへの変更が少なくて好みだ。
2.はxcodeprojをどう変更してるのかが、見えない。
757デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/30(火) 10:49:53.98ID:hcHvAlDm0 CocoaPodsはオープンソースだからxcodeprojをどう変更してるかは見えるだろ
758デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/30(火) 10:53:32.01ID:LRk+Le9O0 Swiftとはちょいと違う事で質問です。
UMLモデリングって最近でも使われますか?
使う目的は何でしょう?
1. すでにあるコードの解析
2. これから作成するコードの可視化
UMLモデリングって最近でも使われますか?
使う目的は何でしょう?
1. すでにあるコードの解析
2. これから作成するコードの可視化
759デフォルトの名無しさん (ワッチョイ df6e-cMFO)
2017/05/30(火) 11:24:11.63ID:hcHvAlDm0 そんなこと聞いてどうすんの? と聞き返したくなるような質問すんな
皆が使ってるなら使ってみようかってことか
皆が使ってるなら使ってみようかってことか
760デフォルトの名無しさん (アウアウウー Sacf-Evzo)
2017/05/30(火) 11:24:54.00ID:gxWnkgCCa しかるべきスレへ行ってはどうか
761デフォルトの名無しさん (スプッッ Sdbf-4cAo)
2017/05/30(火) 12:41:12.92ID:8S4zHXFCd >>758
モデリングのために決まってんだろ
モデリングのために決まってんだろ
762デフォルトの名無しさん (ブーイモ MMbf-vlKO)
2017/05/30(火) 13:35:34.23ID:MeRfIrpoM >>755
まさにこれ。決めてほしい。
それかアップル自身が公式にリファレンスとなるアプリをオープンソースにしてほしい。
react-nativeだとf8appがそれっぽいが。
なんかそれなりの規模のオープンソースアプリないかな。
まさにこれ。決めてほしい。
それかアップル自身が公式にリファレンスとなるアプリをオープンソースにしてほしい。
react-nativeだとf8appがそれっぽいが。
なんかそれなりの規模のオープンソースアプリないかな。
763デフォルトの名無しさん (ササクッテロリ Sp0f-W32U)
2017/05/30(火) 14:59:25.27ID:zOXcPiC1p swift.orgのPackage Managerのページにゴミのようなサンプルはあるけど
自身(SPM)のことしか考えてないから、自分で作った方が良いだろうねぇ
Swift Package Manager
https://swift.org/package-manager/#conceptual-overview
Package.swift作って、Sources, Testsディレクトリ作る
CocoaPods
https://guides.cocoapods.org/syntax/podfile.html
Podfile作る, Sources/*.swiftを参照
Carthage
https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfile
Carfile作る, Sources/*.swiftを参照
Xcode
上の全部を適当にpodが作った.xcworkspaceのプロジェクトツリーに加える
自身(SPM)のことしか考えてないから、自分で作った方が良いだろうねぇ
Swift Package Manager
https://swift.org/package-manager/#conceptual-overview
Package.swift作って、Sources, Testsディレクトリ作る
CocoaPods
https://guides.cocoapods.org/syntax/podfile.html
Podfile作る, Sources/*.swiftを参照
Carthage
https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfile
Carfile作る, Sources/*.swiftを参照
Xcode
上の全部を適当にpodが作った.xcworkspaceのプロジェクトツリーに加える
764デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/31(水) 11:13:03.77ID:9hyFYnrA0 qiitaのKotlin記事を読んでて出くわしたphrase。
Android アプリ開発者であれば普段から英語を読んでいると思いますし、平易な英語なので大きな問題はないと思います。
俺にはComputer関連の英語文章が難しく感じるのだけど、どうなんでしょう?
exressionを式だと理解するのに、随分時間がかかったと思う。
Android アプリ開発者であれば普段から英語を読んでいると思いますし、平易な英語なので大きな問題はないと思います。
俺にはComputer関連の英語文章が難しく感じるのだけど、どうなんでしょう?
exressionを式だと理解するのに、随分時間がかかったと思う。
765デフォルトの名無しさん (アウアウカー Sa8f-Kfqe)
2017/05/31(水) 12:18:51.47ID:mlMZGH6Ha 和書にも専門用語は英訳も一緒に載ってること多いから違和感無かったけど、入門してすぐ洋書だとそう感じるかも。
766デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/31(水) 12:45:27.84ID:9hyFYnrA0 たしかに!
順方向伝搬(forward propagation)って書いてあるね。和書には。
expressionを式、statementを文と訳すのは判ったけど、和書には「式文」
ってのが時々出て来て、これ何を翻訳したんだ?
と不安になる。
順方向伝搬(forward propagation)って書いてあるね。和書には。
expressionを式、statementを文と訳すのは判ったけど、和書には「式文」
ってのが時々出て来て、これ何を翻訳したんだ?
と不安になる。
767デフォルトの名無しさん (JP 0Hcf-Evzo)
2017/05/31(水) 16:07:11.28ID:nyiBm3r5H そんなあなたに
Regular Expression
はどう訳す
Regular Expression
はどう訳す
768デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/31(水) 16:13:04.68ID:9hyFYnrA0 >>767
いつも良く使うマッチ式
いつも良く使うマッチ式
769デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/31(水) 16:16:42.72ID:9hyFYnrA0 regular = いつもの
例:regular customer = 常連、regular coffee = 日々よく飲むコーヒー
regular ¥= 正規 = formal, proper
例:regular customer = 常連、regular coffee = 日々よく飲むコーヒー
regular ¥= 正規 = formal, proper
770デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/31(水) 16:19:06.25ID:9hyFYnrA0 正規表現って訳語は、誤訳だわぁ。
771デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/31(水) 16:19:30.13ID:9hyFYnrA0 誤訳を永遠と使い続けるのは、よく無い。
772デフォルトの名無しさん (JP 0Hcf-Evzo)
2017/05/31(水) 16:25:25.52ID:nyiBm3r5H >>770
石田晴久が糞って有名ですし
石田晴久が糞って有名ですし
773デフォルトの名無しさん (ワッチョイ fbf3-Y9+t)
2017/05/31(水) 16:37:31.63ID:9hyFYnrA0 >>772
まあ、情報が入手しずらい時代に苦心して日本語を当てたって感じだ。
Microsoftの文書を読んで、まったく意味がわからんかったのを思い出さしてクレルわぁ。DAO ActiveX Library, RDO ActiveX Libraryに関しての記述を読んで、
さっぱり意味不明だった。和文も、英文も。
サンプルコードを見たら一発で理解できた。
まあ、情報が入手しずらい時代に苦心して日本語を当てたって感じだ。
Microsoftの文書を読んで、まったく意味がわからんかったのを思い出さしてクレルわぁ。DAO ActiveX Library, RDO ActiveX Libraryに関しての記述を読んで、
さっぱり意味不明だった。和文も、英文も。
サンプルコードを見たら一発で理解できた。
774デフォルトの名無しさん (スッップ Sdbf-fYd5)
2017/05/31(水) 19:53:48.08ID:3T0UNs5qd775デフォルトの名無しさん (ワッチョイ fb54-2haG)
2017/05/31(水) 20:15:00.41ID:Iu1e43xk0 >>774
頭悪そ。
頭悪そ。
776デフォルトの名無しさん (ワッチョイ 9f72-p7jx)
2017/05/31(水) 21:26:00.22ID:DggZESjQ0 >>750
Swiftより簡単なの?
Swiftより簡単なの?
777デフォルトの名無しさん (ワッチョイ fb54-WkB/)
2017/05/31(水) 21:33:41.18ID:Iu1e43xk0 >>750
知ったか
知ったか
778デフォルトの名無しさん (スプッッ Sdbf-iTU4)
2017/05/31(水) 21:47:41.16ID:WiTkOt3Sd >>776
果てしなく簡単
果てしなく簡単
779デフォルトの名無しさん (ワッチョイ 7bf5-vlKO)
2017/05/31(水) 22:53:30.93ID:JH+W+dlz0 swiftが言語仕様固まらないうちにkotlinがios対応しちゃうな。
780デフォルトの名無しさん (ワッチョイ 7b46-NZKg)
2017/05/31(水) 23:40:55.86ID:pEaTZtAB0 Swift使ってる自分が好きな人
781デフォルトの名無しさん (スップ Sdea-EO1S)
2017/06/01(木) 08:38:33.85ID:gogTzzXkd モダンな言語Swiftを使ってる最先端な自分
782デフォルトの名無しさん (スプッッ Sdea-v+1e)
2017/06/01(木) 09:47:53.31ID:5viUjg+Pd swiftは作る奴の思考によってパラダイムが変わるから他人のコードがストレスになる糞言語
いっそのことclassを消してしまえばいいわ
いっそのことclassを消してしまえばいいわ
783デフォルトの名無しさん (ワッチョイ b9f3-O++a)
2017/06/01(木) 10:35:07.17ID:Mc77jWtu0784デフォルトの名無しさん (ワッチョイ 353c-2/Qz)
2017/06/01(木) 10:53:52.60ID:kPS6C5Z/0 SwiftとKotlinでちょっと遅延評価リストを比較した
■Kotlin
オンラインコンパイラ: https://try.kotlinlang.org/
val a = generateSequence(0){it+1}
//A 問題なし
println("A: "+ a.take(10).toList() )
//B 問題なし
println("B: "+ a.take(10).map{it*10}.toList() )
//C 問題なし
println("C: "+ a.filter{3<it}.take(10).toList() )
//D 問題なし
println("D: "+ a.map{it*10}.take(10).toList() )
//E 問題なし
println("E: "+ a.map{it*10}.filter{50<it}.take(5).toList() )
■Kotlin
オンラインコンパイラ: https://try.kotlinlang.org/
val a = generateSequence(0){it+1}
//A 問題なし
println("A: "+ a.take(10).toList() )
//B 問題なし
println("B: "+ a.take(10).map{it*10}.toList() )
//C 問題なし
println("C: "+ a.filter{3<it}.take(10).toList() )
//D 問題なし
println("D: "+ a.map{it*10}.take(10).toList() )
//E 問題なし
println("E: "+ a.map{it*10}.filter{50<it}.take(5).toList() )
785デフォルトの名無しさん (ワッチョイ b6f3-c8bI)
2017/06/01(木) 10:54:14.25ID:AXJF1Amn0 swiftは言語仕様固まらないうちにAndroid対応しちゃうバカだからな
kotlinのios対応って何周遅れだよ...対応遅すぎる
kotlinのios対応って何周遅れだよ...対応遅すぎる
786デフォルトの名無しさん (ワッチョイ 353c-2/Qz)
2017/06/01(木) 10:55:55.93ID:kPS6C5Z/0 ■Swift
オンラインコンパイラ: https://swift.sandbox.bluemix.net/
extension Sequence { var array:[Iterator.Element] {get{return map{$0}}} }
let a = sequence(first:0){$0+1}
//A 問題なし
print("A:", a.prefix(10).array )
//B 問題なし
print("B:", a.prefix(10).map{$0*10}.array )
//C 死ぬ
print("C:", a.filter{3<$0}.prefix(10).array )
//C-2 lazy付けたら動く
print("C:", a.lazy.filter{3<$0}.prefix(10).array )
//D 死ぬ
print("D:", a.map{$0*10}.prefix(10).array )
//D-2 lazy付けてもコンパイル不可
print("D:", a.lazy.map{$0*10}.prefix(10).array )
//E
print("E:", a.map{$0*10}.filter{50<$0}.prefix(5).array )
//E-2 lazy付加+分割で何とか動く
do {
let a2 = a.lazy.map{$0*10}
let a3 = a2.filter{50<$0}
print("E:", a3.prefix(5).array )
}
オンラインコンパイラ: https://swift.sandbox.bluemix.net/
extension Sequence { var array:[Iterator.Element] {get{return map{$0}}} }
let a = sequence(first:0){$0+1}
//A 問題なし
print("A:", a.prefix(10).array )
//B 問題なし
print("B:", a.prefix(10).map{$0*10}.array )
//C 死ぬ
print("C:", a.filter{3<$0}.prefix(10).array )
//C-2 lazy付けたら動く
print("C:", a.lazy.filter{3<$0}.prefix(10).array )
//D 死ぬ
print("D:", a.map{$0*10}.prefix(10).array )
//D-2 lazy付けてもコンパイル不可
print("D:", a.lazy.map{$0*10}.prefix(10).array )
//E
print("E:", a.map{$0*10}.filter{50<$0}.prefix(5).array )
//E-2 lazy付加+分割で何とか動く
do {
let a2 = a.lazy.map{$0*10}
let a3 = a2.filter{50<$0}
print("E:", a3.prefix(5).array )
}
787デフォルトの名無しさん (ワッチョイ b9f3-O++a)
2017/06/01(木) 11:22:30.68ID:Mc77jWtu0788デフォルトの名無しさん (ワッチョイ 2af3-OTNS)
2017/06/01(木) 12:01:04.94ID:5DFmWXv80 >>786
let a = sequence(first:0){$0+1}.lazy
でよくね
ここ書いてる時点で無限sequenceだってわかってるんだから
ambiguous云々言われるのは…まぁ…
let a = sequence(first:0){$0+1}.lazy
でよくね
ここ書いてる時点で無限sequenceだってわかってるんだから
ambiguous云々言われるのは…まぁ…
789デフォルトの名無しさん (スプッッ Sdea-v+1e)
2017/06/01(木) 13:13:36.56ID:5viUjg+Pd >>783
日本語理解できないガイジ
日本語理解できないガイジ
790デフォルトの名無しさん (スフッ Sd0a-yOWz)
2017/06/01(木) 13:17:57.99ID:EiP2TW+2d たしかにこれはガイジ
理由書いてるレスに理由聞くとか新しすぎる
理由書いてるレスに理由聞くとか新しすぎる
791デフォルトの名無しさん (ワッチョイ b9f3-O++a)
2017/06/01(木) 13:30:11.13ID:Mc77jWtu0 >>788
//print("D:", a.map{$0*10}.prefix(10).array )
print("D:", a.map{($0 as Int)*10}.prefix(10).array )
=> D: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
修正したらambiguous言わなくなったけど、なんでだ?
//print("D:", a.map{$0*10}.prefix(10).array )
print("D:", a.map{($0 as Int)*10}.prefix(10).array )
=> D: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
修正したらambiguous言わなくなったけど、なんでだ?
792デフォルトの名無しさん (ワッチョイ 661f-zUMb)
2017/06/01(木) 21:02:51.03ID:DEetJIxW0 スタイリッシュを装ってるが
ときどき地がでて$0とか$1とか書いちゃう田舎者
それがSwift
ときどき地がでて$0とか$1とか書いちゃう田舎者
それがSwift
793デフォルトの名無しさん (ワッチョイ 2a6c-OTNS)
2017/06/05(月) 16:00:36.93ID:AJ9L3Zjp0 今夜Swift++発表か
794デフォルトの名無しさん (ササクッテロル Sp3d-i1uu)
2017/06/05(月) 16:32:47.80ID:8WFwx/xcp また新しい文法が増えるのか
795デフォルトの名無しさん (スプッッ Sdea-esot)
2017/06/05(月) 17:46:21.52ID:mNvdXf0od Swift+=1じゃないのか
796デフォルトの名無しさん (ササクッテロリ Sp3d-+5QW)
2017/06/05(月) 18:51:21.00ID:SveFyKZdp Swift4なんてなかった
797デフォルトの名無しさん (スップ Sdea-EO1S)
2017/06/05(月) 19:31:26.86ID:3JnnQNM2d798デフォルトの名無しさん (ワッチョイ d955-nAfx)
2017/06/05(月) 20:40:53.41ID:jJlkmHCz0 without Cという、表面的な自己満足を実現する言語仕様
という意味では成功してるかもなSwiftは
という意味では成功してるかもなSwiftは
799デフォルトの名無しさん (ワンミングク MM7a-sYLo)
2017/06/06(火) 09:11:21.70ID:qDrcxP3vM See what’s next.
The new beta of Xcode 9 is now available,
and includes Swift 4 and SDKs used to build apps with the latest innovations and
powerful capabilities in macOS, iOS, watchOS, and tvOS.
おはギャーきたな
The new beta of Xcode 9 is now available,
and includes Swift 4 and SDKs used to build apps with the latest innovations and
powerful capabilities in macOS, iOS, watchOS, and tvOS.
おはギャーきたな
800デフォルトの名無しさん (スップ Sd0a-EO1S)
2017/06/06(火) 09:21:00.69ID:Z7hLIrmcd Swift4…。Apple正気か
801デフォルトの名無しさん (ワンミングク MM7a-sYLo)
2017/06/06(火) 09:25:05.11ID:qDrcxP3vM 2017/05/26 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大
欠陥に気付いた時点から1年以内にITベンダーに通知すれば、通知後5年以内は修正や報酬の減額などを求めることできる
Swift3でシステム作って納品する
↓
iOSバージョンが12になる。Swift4が必須になる
↓
客がプロジェクトファイルからアップデート試す。Swift4の必須のエラーが出る。動作の不具合に気づく
↓
気付いた時点から1年以内に通知すれば、5年間無料保証ゲット
↓
つまりSwiftがアップデートするたびに、無償の修正作業を発生するということかな
欠陥に気付いた時点から1年以内にITベンダーに通知すれば、通知後5年以内は修正や報酬の減額などを求めることできる
Swift3でシステム作って納品する
↓
iOSバージョンが12になる。Swift4が必須になる
↓
客がプロジェクトファイルからアップデート試す。Swift4の必須のエラーが出る。動作の不具合に気づく
↓
気付いた時点から1年以内に通知すれば、5年間無料保証ゲット
↓
つまりSwiftがアップデートするたびに、無償の修正作業を発生するということかな
802デフォルトの名無しさん (ササクッテロリ Sp3d-c8bI)
2017/06/06(火) 09:57:12.15ID:LrtFpx4Mp > iOSバージョンが12になる。Swift4が必須になる
ダウト
中途半端な知識でモノを言うもんじゃねぇよww
なお、小賢しいPMはSwiftバージョン上がる度に
最新のXcodeでビルドできないのはアポーのせいなんでwwwってメンテ工数をぶん取る模様
ダウト
中途半端な知識でモノを言うもんじゃねぇよww
なお、小賢しいPMはSwiftバージョン上がる度に
最新のXcodeでビルドできないのはアポーのせいなんでwwwってメンテ工数をぶん取る模様
803デフォルトの名無しさん (ワンミングク MM7a-sYLo)
2017/06/06(火) 10:07:42.01ID:qDrcxP3vM それはお前が決めることじゃない。コンペで「今後欠陥に気付いてから5年間無料保証を請け負うお」を提案できる会社だけが仕事を取れることだけのこと
コンペで競争がおき、それを提案できる会社が出てくるから、それが慣習化していくよ。法でデフォルトで定められた無限保証をわざわざ有限保証にするバカはいない。
コンペで競争がおき、それを提案できる会社が出てくるから、それが慣習化していくよ。法でデフォルトで定められた無限保証をわざわざ有限保証にするバカはいない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- あぼーん
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- 【老舗文具メーカー】「生成AIで制作していた」――サクラクレパス、“AI疑惑”ポスターの調査結果を報告 ★2 [ぐれ★]
- 一人殺したい奴がいる
- __トランプ、G7に代わる「Core 5」構想、米 中 露 印 日をまとめる巨大枠組み、世界秩序の再編につながる可能性 [827565401]
- コーンポタージュに食パン浸して食うのうますぎwwwwwwwwwwwwwwwwwwwwww
- 残クレタワマン、始まるwwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 結婚したい女性声優
