トップページ⇒tech
1001コメント338KB

Swift part2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/06/11(水) 14:42:15.02ID:+13mKJ0Z
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

Apple Developer
https://developer.apple.com/swift/
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
今のところbeta版のXcode 6がSwift対応らしい
https://developer.apple.com/xcode/downloads/

関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/

前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
0132デフォルトの名無しさん2014/06/18(水) 13:24:52.54ID:SO+OzQPt
嫉妬乙
0133デフォルトの名無しさん2014/06/18(水) 13:25:06.72ID:g+Ah9yuL
別に翻訳待たなくても日本語で解説してくれてるブログとかいっぱいありますし…
とりあえず濱田はさっさとこのスレから消えてくれませんかねぇ
0134デフォルトの名無しさん2014/06/18(水) 13:33:35.17ID:4JJBGbJ7
おまいらがそうやって園田さんを追い詰めるイコール日本のリーダーが海外に行ってしまうんだよ
0135デフォルトの名無しさん2014/06/18(水) 14:00:57.39ID:453IuISd
濱田はリーダーじゃなくてただの癌だろ
海外行ってくれた方がありがたいわ。英語出来ないみたいだから無理だろうけど
0136デフォルトの名無しさん2014/06/18(水) 14:47:43.17ID:DWPLO9ki
濱田はiBooksを丸々盗んでXHTML,CSSフォーマットはそのまま使って文章だけ変えようとしたんだぞ。 それ自体許される事ではない。
翻訳以前の話。 epub は iBooksを盗んできたXHTMLのまま。 それ自体禁止された行為。

そもそもそんなんでまともな翻訳が出来る訳が無い。 だから誰も参加しなかったんだよ。
どんなあほでもせめて HTMLにはするだろ。 HTMLでも編集しづらいけど。

日本人の恥さらしは消えた方が良い。
0137デフォルトの名無しさん2014/06/18(水) 15:54:33.33ID:4zfTpjTw
嘘を付いたら訴えられるぞ
0138デフォルトの名無しさん2014/06/19(木) 11:00:11.79ID:BcmtgtjI
嘘そのもので訴えられることはないだろ
それによって被害をこうむったとか株価操作の疑いがあったとか
0139デフォルトの名無しさん2014/06/19(木) 12:09:32.58ID:hpF6FD1z
これからものすごい数のswift本ラッシュが来るで。
0140デフォルトの名無しさん2014/06/19(木) 15:45:47.33ID:0DBpyS/Q
先取り!Swift
https://gihyo.jp/dp/ebook/2014/978-4-7741-6609-4
epub本
75ページで600円はボリ過ぎ
内容なさ過ぎみたい。

こっちは本じゃ無いけど、まとまってる。
プログラミング言語Swift日本語チュートリアル ~ 前編(Apple公式ドキュメントSwift Tour±α
http://xavier.hateblo.jp/entry/2014/06/12/223346

[iOS][Mac] Swift を学べる記事のまとめ
http://dev.classmethod.jp/smartphone/iphone/learn-swift/
0141デフォルトの名無しさん2014/06/19(木) 16:06:23.90ID:QOqR9llH
さっそく関係者さん宣伝ごくろうさまです
0142デフォルトの名無しさん2014/06/19(木) 16:34:27.12ID:0DBpyS/Q
? 少なくとも売ってる物はけなしてるんだけど?

公式本が良く出来過ぎてるから、下手な解説本はけなされるだろうな。
無いよりはマシかもしれ無いけど。
0143デフォルトの名無しさん2014/06/19(木) 16:40:25.02ID:QOqR9llH
宣伝4ね
0144デフォルトの名無しさん2014/06/19(木) 16:41:09.80ID:BcmtgtjI
宣伝されると困る人がいるようだw
0145デフォルトの名無しさん2014/06/19(木) 16:58:57.63ID:umgUaSFH
それは濱田さ
0146デフォルトの名無しさん2014/06/19(木) 19:05:51.88ID:LVCYZZpV
iOS本を書いてる作者を見るとSwiftをまともに解説できる作者がいるとは思えない
型推論ありの静的言語を使ってまともなプログラムを書いたことのあるプログラマーは少ないし
0147デフォルトの名無しさん2014/06/19(木) 20:06:49.40ID:YGWyXUme
まともなプログラマなら型推論有りの静的言語書いた事ぐらいあるだろ普通……
そんな珍しいものでもあるまいし
0148デフォルトの名無しさん2014/06/19(木) 20:10:12.15ID:LykmxWBZ
iOSとか本自体が増えたから一部に不適格者は居るだろうけど
一部を見て全体を貶めようとするのは、個人的な憂さ晴らしでしかないからマトモに取り合う必要はないだろ
0149デフォルトの名無しさん2014/06/19(木) 20:17:26.39ID:HRCPZ4Ny
>>140
まだまだプレリリースだというのに早漏だのう
0150デフォルトの名無しさん2014/06/19(木) 20:27:06.05ID:EnR6mUtN
>>140
75ページって、Swift本の詳細を端折って意訳した感じかな
しかも3人の共著
よっぽど急いで出したかったんだね
0151デフォルトの名無しさん2014/06/19(木) 21:08:53.96ID:kFn3RAhT
>>140
一番上の本、epubで75Pしかないのに600円とかwwwwwボッタクリもいいところだなw
こういう奴等が善意の翻訳プロジェクトをことごとく潰したりしてる気がするなぁ
この3人の著者は要注意に入れて俺はこいつらの本は絶対に買わないと心に決めた
0152デフォルトの名無しさん2014/06/19(木) 21:21:15.81ID:hED1WWRp
他力本願で自分で訳す気ゼロの濱ちゃんとは言え、潰したのは許せねえ
見ていろよ濱田! お前の仇は取ってやる!!
0153デフォルトの名無しさん2014/06/19(木) 21:24:59.53ID:zIYLi9WT
まだ茶番続くのかよ
0154デフォルトの名無しさん2014/06/19(木) 22:14:30.94ID:HRCPZ4Ny
クラスメソッド特有の、先行者利益狙いの内容の薄い本だわ
クラスメソッドはiOS7のときの怒濤の記事数と反比例した内容の薄さにもビックリしたが…
0155デフォルトの名無しさん2014/06/20(金) 08:40:48.51ID:E70jMkdF
75Pで600円?
安いじゃないか

同人誌としては
0156デフォルトの名無しさん2014/06/20(金) 10:56:24.96ID:CCZRVeL/
なに?Swiftちゃんの薄い本だと!?

いきなり擬人化から入る日本人としては、解説本より先に夏には萌え本が出ると思います!
0157デフォルトの名無しさん2014/06/20(金) 11:31:01.87ID:IQz8StZM
LLVMの可愛い同人誌はもうあるしな
0158デフォルトの名無しさん2014/06/20(金) 11:50:20.92ID:rYyNUA8p
LLVMはメタルドラゴンだろ。一体どんな同人誌だよ…
0159デフォルトの名無しさん2014/06/20(金) 12:57:23.02ID:NyETg04V
swift使えば海外送金も簡単になりますか?
0160デフォルトの名無しさん2014/06/20(金) 12:58:49.77ID:0PgNV7xO
>>159
なりませんよ
0161デフォルトの名無しさん2014/06/20(金) 13:35:27.40ID:ltBAGUPz
あからさまの宣伝だと叩かれるから悪口言ってるふりをした誘導宣伝うぜえな
0162デフォルトの名無しさん2014/06/20(金) 13:48:19.15ID:13YA0ieC
自分で取捨選択できないやつにかぎってそんなこと言うんだよな
0163デフォルトの名無しさん2014/06/20(金) 16:30:17.45ID:a0oeUuGM
濱田か
0164デフォルトの名無しさん2014/06/20(金) 17:07:22.05ID:PmYa9Irn
とりあえず皆と同じように叩いとけば良いとかいう風潮危険
濱田とかいうのが叩かれてるのは2chコピペのアフィリエイトが叩かれてるのと同じ感じがする
0165デフォルトの名無しさん2014/06/20(金) 17:10:31.82ID:3e7ZxbC3
つまり叩かれて当然ってことか
0166デフォルトの名無しさん2014/06/20(金) 17:11:39.48ID:kEPVLal9
>>164 自分の目で見たのか? ひどい物だったぞ。
Githubは、iBooksのコピペ。 訳は一切なし、翻訳結果の所有権は自分に有る主張。
Webの方は、広告だけで一切自分の書いた物なし。
0167デフォルトの名無しさん2014/06/20(金) 17:13:10.40ID:PmYa9Irn
そうか、それは叩かれてもいいかな
0168デフォルトの名無しさん2014/06/20(金) 17:14:45.81ID:CCZRVeL/
>>159
むしろ面倒だろSWIFT……というか海外送金自体が面倒だし……
0169デフォルトの名無しさん2014/06/20(金) 17:16:51.10ID:vduwxYH8
広告なんて一切なかったけどなw
必死だなw
0170デフォルトの名無しさん2014/06/20(金) 17:50:47.25ID:JctBwY7H
>>169
よう濱田
0171デフォルトの名無しさん2014/06/20(金) 19:53:31.53ID:lZjD2ymP
>>161
褒める==>ageうぜえ
貶す==>炎上ステマうぜえ
マスゴミ脳だね。
0172デフォルトの名無しさん2014/06/20(金) 20:34:28.42ID:rYyNUA8p
>>166
> 翻訳結果の所有権は自分に有る主張。
マジかよw
むしろこういう奴が舵を取ろうとした事が有志の日本語翻訳コミュニティの形成を阻害させたな
0173デフォルトの名無しさん2014/06/20(金) 20:38:23.94ID:fiYVjyLm
プロフィールで名前/年齢/職業を公開していたけど、
すべて偽造というか架空の人物設定なんだよな?

実名だとしたら、自分なら恥ずかしくて生きていけんわ(w
0174デフォルトの名無しさん2014/06/20(金) 20:44:08.81ID:kEPVLal9
C# のスレにあったサンプルを Swiftで書いてみた。 基本的には同じだが、Swiftの方が楽。

//------------ C#  (空白は全角を使っている)
class Program
{
  static void Main(string[] args)
  {
    var list = new List<Tuple<int, string>>();

    list.Add(Tuple.Create(31, "Jan"));
    list.Add(Tuple.Create(28, "Feb"));
    list.Add(Tuple.Create(31, "Mar"));
    list.Add(Tuple.Create(30, "Apr"));
    list.Add(Tuple.Create(31, "May"));

    list.Sort((Tuple<int, string> t1, Tuple<int, string> t2) => (t2.Item1 - t1.Item1));

    foreach (var t in list)
    {
      Console.WriteLine("{0} {1}", t.Item1, t.Item2);
    }
  }
}
//--------- Swift
let lists:(days: Int , month: String)[] = [ (31, "Jan") , (28, "Feb") , (31, "Mar") , (30, "Apr") , (31, "May") ]
sort ( lists , { $0.days < $1.days } )
println( lists )

/* ---------- このSwiftの sort 部分は、次のようにも書ける
sort ( lists , { ( t1, t2 ) -> Bool in t1.days < t2.days } ) // 或は
sort ( lists , { t1, t2 in t1.days < t2.days } ) 
*/
0175デフォルトの名無しさん2014/06/20(金) 20:47:10.84ID:DSYIvwNi
http://ja.wikipedia.org/w/index.php?title=Swift_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)&diff=prev&oldid=51929060

ゆうちゃんの売名意欲はんぱない
0176デフォルトの名無しさん2014/06/20(金) 20:51:35.67ID:CCZRVeL/
>>175
30分経たずに取り消されててワロタw
0177デフォルトの名無しさん2014/06/20(金) 21:07:33.19ID:IQz8StZM
https://ja.wikipedia.org/wiki/%E6%BF%B1%E7%94%B0%E5%84%AA

右上の業績欄で吹くww
0178デフォルトの名無しさん2014/06/20(金) 21:19:13.04ID:M/JwZqVI
>>174
C#はこう書ける
var list = new{new{days=31,month="Jan},new{days=28,month="Feb"},new{days=31,month="Mar"},new{days=30,month="May"},new{days=31,month="May"}};
foreach (var t in list.OrderBy(x => x.days))
 Console.WriteLine(t);
あるいはこんなことも
var dic = new Dictionary<int, String> {{31,"Jan"},略,{31,"May"}};
foreach (var t in
 from t in dic
 orderby t.Key
 select new { days=t.Key, month=t.Value })
 Console.WriteLine(t);
0179デフォルトの名無しさん2014/06/20(金) 21:27:54.81ID:CCZRVeL/
>>177
Swift-jpアカウントで追加したリンクが消されててワロタ
0180デフォルトの名無しさん2014/06/20(金) 22:46:31.47ID:0PgNV7xO
 
Wikipediaって、誰でも自己紹介書いていいのか?
0181デフォルトの名無しさん2014/06/20(金) 22:48:16.71ID:DSYIvwNi
書いちゃダメだろ、つうか書こうとも思わないだろ普通
0182デフォルトの名無しさん2014/06/20(金) 22:56:33.10ID:4Z5Rc51b
>>180
http://ja.wikipedia.org/wiki/Wikipedia:%E8%87%AA%E5%88%86%E8%87%AA%E8%BA%AB%E3%81%AE%E8%A8%98%E4%BA%8B%E3%82%92%E3%81%A4%E3%81%8F%E3%82%89%E3%81%AA%E3%81%84
0183デフォルトの名無しさん2014/06/20(金) 23:33:58.00ID:kEPVLal9
>>180 ダメだよ。 個人的な事や宣伝目的な物は削除対象。 誰か削除依頼出せよ。
0184デフォルトの名無しさん2014/06/21(土) 00:25:46.40ID:+flxE0eC
@濱ちゃん
Swift言語の簡易リファレンスを纏めたチートシートcdn2.raywenderlich.com/wp-content/upl…
2014年6月04日 - 3:38pm
0185デフォルトの名無しさん2014/06/21(土) 00:40:00.78ID:kku3Zr/2
濱ちゃん、アウトぉ!
0186デフォルトの名無しさん2014/06/21(土) 01:24:05.68ID:jGMnyNE3
あまちゃんのははまちちゃんが書いたからセーフなのか
内輪だけど
0187デフォルトの名無しさん2014/06/21(土) 01:30:26.51ID:JBSU6pk5
濱ちゃんって架空のキャラがswift解説する本出せばワンチャンある
0188デフォルトの名無しさん2014/06/21(土) 01:35:52.89ID:5/17O7zj
この人も自身が運営するCaveTubeを自分で登録して削除されてたな
https://twitter.com/madogai
0189デフォルトの名無しさん2014/06/21(土) 04:53:39.17ID:qifWmRUG
functionの引数でexternal nameとlocal nameが設定できるけど別々の名前にするメリットって何ですか?
0190デフォルトの名無しさん2014/06/21(土) 05:59:44.67ID:qifWmRUG
このサンプルコードを見てなんとなく使い所が分かりました

struct Point {
var x = 0.0, y = 0.0
mutating func moveByX(deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
}
}
var somePoint = Point(x: 1.0, y: 1.0)
somePoint.moveByX(2.0, y: 3.0)

でもこれなら個人的には
func moveByX(x: Double, y: Double) {
self.x += x
self.y += y
}
って書く方がすっきりしてる様に思いました。好みですかね?
0191デフォルトの名無しさん2014/06/21(土) 07:06:22.95ID:Gm5EhJPM
>>189 external parameter name を付けるとバラメータの意味をはっきりさせ、理解しやすくなる。

例 func 探す( 文字列: String , 文字: character )
と解りやすく書いておいたつもりでも、呼び出し元が

探す( a , b )
探す( "abcdefg" , "c" )
では意味が解りにくい。

func 探す( 元文字列 文字列: String , 探索文字 文字: character )
或いは
func 探す( #元文字列: String , #探索文字: character )
としておけば

呼び出しは解りやすくなる。
探す( 元文字列: a , 探索文字: b )
探す( 元文字列: "abcdefg" , 探索文字: "c" )
0192デフォルトの名無しさん2014/06/21(土) 07:23:30.52ID:Gm5EhJPM
>>190 その理解は多分間違っている。
上の例は、Objective-C の書き方でexternal nameをつけてる例。
swift 流に上の例を書き直すと、
finc moveBy( x deltaX: Double , y deltaY: Double )
moveBy( x: 2.0 , y: 3.0 )

2番目は、たまたま外側の名前の、x , yをパラメータに使ってるが、ローカル名で却って解りにくくなる。

2番目を呼出すと、
moveByX( 2.0 , 3.0 )
数字の意味が解らなくなる。
0193デフォルトの名無しさん2014/06/21(土) 08:52:29.04ID:eLk4E9G5
外から見るWWDC 2014キーノート――Swiftに感じるAppleの本気
http://www.atmarkit.co.jp/ait/articles/1406/19/news012_2.html

個人的にも一番感心したのは、やっぱり新言語Swiftの発表でした。
ここ数年Mac、iOS系の開発から遠ざかっていて、最新のObjective-C文法などにも疎くなっていたので、
そろそろ勉強し直さないといけないなぁと本気で危機感を感じていたところに、
Appleからリセットボタンを押された気分です(笑)。

あらためてiOSアプリを開発したいなと肩を押された気がしているデベロッパーは
僕だけではないと思います。

興味深いのは、通常、Swiftのような新言語が発表されると、
従来の言語に慣れ親しんだユーザーからは賛否両論の議論が湧き上がるのですが、
今回のSwiftに関しては、かなりポジティブな意見が目立つように見えます。
こうした反応を見ていても、Swiftがいかに今時の言語をよく研究して、
良い所取りをして開発されたのかが見える気がします。
0194デフォルトの名無しさん2014/06/21(土) 08:56:03.29ID:6ZbZYmYu
◎2chスレッド勢いランキングサイトリスト◎

★+ニュース板
・ 2NN (推奨サイト)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推奨サイト)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推奨サイト)
・ READ2CH
・ i-ikioi

※ 要タイトル検索
※ 2chブラウザ併用推奨
0195デフォルトの名無しさん2014/06/21(土) 21:00:36.35ID:qifWmRUG
>>192
こう書けたら分かりやすかったのにと思います。
struct Point {
var x = 0.0, y = 0.0
mutating func moveBy(x: Double, y: Double) {
self.x += x
self.y += y
}
}
var somePoint = Point(x: 1.0, y: 1.0)
somePoint.moveBy(x: 2.0, y: 3.0)

実際は以下のようにxの方だけ#を付けないとエラーが出てしまいます。
func moveBy(#x: Double, y: Double)
1つ目の引数だけ扱いが違うのがちょっとややこしいです。

もしくは例に挙げてもらったこれ
func moveBy(x deltaX: Double ,y deltaY: Double)
手間は少し増えるけどミスは減りそうです。
0196デフォルトの名無しさん2014/06/21(土) 21:01:54.05ID:tQVBpUxD
linuxで開発できないからクソだな
ガラパゴス言語4ね
0197デフォルトの名無しさん2014/06/21(土) 21:03:55.24ID:qifWmRUG
結局、メリットは分かりやすくなるって事ですね。
0198デフォルトの名無しさん2014/06/22(日) 01:33:00.56ID:pfgiPEoY
>>195 structやclass 内の func は例外で第1パラメータと第2パラメータの扱いが特殊ですね。
一般記法と混同しないように、第2パラメータには外部パラメータ名を付けるように書くのが良いみたいです。
そして第1パラメータ名を関数名の最後につけるのが流儀のようですね。 Objective-Cに合わせたのでしょうが美しくないですね。

struct Point {
var x = 0.0, y = 0.0
mutating func moveByX(x: Double, y y: Double) {
  self.x += x
  self.y += y
}
}
var somePoint = Point(x: 1.0, y: 1.0)
somePoint.moveByX(2.0, y: 3.0)
0199デフォルトの名無しさん2014/06/22(日) 01:57:21.67ID:CiHQU1Qw
ガラパゴスで有り続けて欲しいね
0200デフォルトの名無しさん2014/06/22(日) 02:07:55.97ID:m6loeTNZ
struct Point {
var x = 0.0, y = 0.0
mutating func moveBy(x: Double, y y: Double) {
  self.x += x
  self.y += y
}
0201デフォルトの名無しさん2014/06/22(日) 14:02:15.67ID:JSmk+G44
goとそっくりだね。
互換性のあるとこだけで書けば、
goとソース互換なんじゃね?
0202デフォルトの名無しさん2014/06/22(日) 14:06:38.79ID:LFHoiLVx
そっくりではない
微妙に違ってる
0203デフォルトの名無しさん2014/06/22(日) 14:17:51.27ID:65iLGPB8
>>202
解ってるよ。
その微妙な違いさえ回避できれば互換性を保てるってことよ。
0204デフォルトの名無しさん2014/06/22(日) 14:38:25.92ID:65iLGPB8
>>192
こういう事かえ?

/* Swift */
point.moveBy( X: 1, Y: 2 )

/* Objective-C */
[ point moveByX: 1 Y: 2 ];

"Smalltalk"
point moveByX: 1 Y:2.
0205デフォルトの名無しさん2014/06/22(日) 15:10:04.67ID:wFLrKJry
>>203
型の指定の仕方の時点で違うから回避できないだろ
0206デフォルトの名無しさん2014/06/22(日) 15:23:29.20ID:2jURMw15
// Go
type string String
func Tag( name String ) String {
 var tag String = "<" + name + "/>"
 return tag
}

// Swift
func Tag( name :String ) -> String {
 var tag :String = "<" + name + "/>"
 return tag
}
0207デフォルトの名無しさん2014/06/22(日) 15:42:53.56ID:0vkagaTc
ー>って矢印を模した表記は厨臭いからやめたほうがいいよ
ベータだしまだ仕様変えられるだろ
いちいちシフト打鍵が必要でタイプ数も増えるしいいこと無い
0208デフォルトの名無しさん2014/06/22(日) 15:44:40.34ID:iuL+D4vh
ruby厨乙
0209デフォルトの名無しさん2014/06/22(日) 15:52:08.83ID:CVWWoFqE
rubyは->(){}があるから・・・
0210デフォルトの名無しさん2014/06/22(日) 15:57:25.29ID:NV1BDSQb
戻り値をそこに書くのが今風なのかのう
0211デフォルトの名無しさん2014/06/22(日) 16:06:46.64ID:rW+mKnZ0
>>207 言語仕様が今更変わる訳が無い。 今風で解りやすくて良いだろ。
0212デフォルトの名無しさん2014/06/22(日) 16:22:09.18ID:MNXrUkEo
/* C++ */
auto Tag( const std::string name ) -> std::string
{
 std::string tag = "<" + name + ">";

 return tag;
}

戻り値を型を省略出来るようにした言語の宿命なんだろ。
0213デフォルトの名無しさん2014/06/22(日) 16:31:13.55ID:tNIRX/kG
//go
function := func() {};

// swift
var function = func() {};

// C++
auto function = [](){};
0214デフォルトの名無しさん2014/06/22(日) 16:55:19.24ID:M4OuaEw5
->を使ったり、戻り値を後ろに書いたりするのは、例えば
「文字列を引数にとって文字列を戻す関数」を引数にとって「文字列を引数にとって文字列を戻す関数」を戻す関数
なんていうのを記述しようとしたときのわかり易さに大きく影響すると思われ
0215デフォルトの名無しさん2014/06/22(日) 17:15:55.50ID:LtMDfcfl
単に無名関数の戻り値型を省略や推論させるための都合だよ。
他の宣言も型が後ろに来るのは、無名関数に合わせてるだけ。
0216デフォルトの名無しさん2014/06/22(日) 17:38:44.43ID:mgZTcG6H
ソースの互換性にこだわるひとって
HTML 中に PHP と javascript 埋め込むくらいの気持ち悪さを感じる
0217デフォルトの名無しさん2014/06/22(日) 17:45:50.87ID:iuL+D4vh
python厨乙
0218デフォルトの名無しさん2014/06/23(月) 10:19:24.43ID:v8LgD0QE
インスタンス変数に直接アクセスできないの気持ち悪い。
やるべきじゃないのかも知れないけど、Qiotaで誰かが書いてたみたいに
例えばゲッタを呼び出すたびにインクリメントされるプロパティとか書けない。
別途インスタンス変数を用意してcomputational propertyとして定義するとか、筋の悪い書き方になる。
そうやったとしてもアクセス指定子もないから元のプロパティに直接アクセスできちゃうし。
どうしてこんなことになったんだ
0219デフォルトの名無しさん2014/06/23(月) 10:36:40.08ID:k0C4cCbl
>>218 こういう事?
http://qiita.com/Lewuathe/items/63801688817c38614cf4
0220デフォルトの名無しさん2014/06/23(月) 10:59:07.21ID:IjFKX6YY
アクセス指定子はやるって言ってるんだから待ってれば

_付きで宣言したら自動的にprivateになればいいなぁ
0221デフォルトの名無しさん2014/06/23(月) 11:45:05.55ID:knxG2Zrc
protectedは?
0222デフォルトの名無しさん2014/06/23(月) 12:40:13.55ID:2Cm/+3gI
>>218
それってObjective-Cでもやってる事はcomputed propertyでしょ。auto synthesizeが効いてて自分で_hogeを宣言する必要がないだけで実質同じじゃない?
0223デフォルトの名無しさん2014/06/23(月) 12:42:50.21ID:2Cm/+3gI
全てがpublicな変数になっちゃうのはprivateを実装する予定だとフォーラムかどこかで見た気がする。
0224デフォルトの名無しさん2014/06/23(月) 12:53:19.14ID:knxG2Zrc
呼び出すたびにインクリメントする処理はクロージャを使えば簡単にかける

func makeCounter() -> () -> Int {
var count = 0;
return {
++count
}
}

let c = makeCounter();
println(c()) // 1
println(c()) // 2
println(c()) // 3
0225デフォルトの名無しさん2014/06/23(月) 12:59:36.86ID:zCax8W1Q
javascript の方が判り易いかも
0226デフォルトの名無しさん2014/06/23(月) 13:25:30.45ID:rcMzefHm
linuxでswiftできるほうほうをおしえて
0227デフォルトの名無しさん2014/06/23(月) 13:28:49.27ID:zETqdp8T
VNC
0228デフォルトの名無しさん2014/06/23(月) 13:59:22.51ID:k0C4cCbl
VMWARE
0229デフォルトの名無しさん2014/06/23(月) 14:11:58.69ID:IjFKX6YY
>>226
http://swift-lang.org/main/
0230デフォルトの名無しさん2014/06/23(月) 16:08:46.48ID:k0C4cCbl
>>223 beta2 リリースノート

• Access control (public/private members) is not enabled in this seed.
• It is not possible to build static libraries which contain Swift code in this release.
0231デフォルトの名無しさん2014/06/23(月) 16:33:17.77ID:v8LgD0QE
>>219
てかそれだよ、俺が見たのは
>>222
1つのことやるのに2つプロパティを作るのが気持ち悪い
名前も別々につけなきゃいけないし
0232デフォルトの名無しさん2014/06/23(月) 16:37:33.87ID:knxG2Zrc
ゲッタ内で更新処理を書くのも気持ち悪いよね
■ このスレッドは過去ログ倉庫に格納されています