Swift part10 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/02/20(月) 10:00:13.40ID:ChbPWtRt0
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
2017/03/21(火) 11:20:38.39ID:g+RWoDDLM
>>246
王とはCのことか
273デフォルトの名無しさん (スッップ Sddf-8YZg)
垢版 |
2017/03/21(火) 12:12:24.85ID:PXKTLJIMd
>>266
「Swiftでないとダメな5つの理由とか」の「とか」は、「Swiftでないとダメな5つの理由」以外の何?
2017/03/21(火) 12:13:48.48ID:1Za/GAk+p
Objective-Cこそ王族の言語(信仰心

>>266
ダメな理由なら3つほど
1. 小さなランタイム(笑)
2. 頻繁に破壊される言語仕様
3. 不完全なエコシステム(ビルドツール)

これらはメリット/デメリットが双方あるものじゃなくデメリットしかないから煽ってもおk
この辺はswiftユーザはもう諦観して苦笑しながら使ってるデメリットだけども
2017/03/21(火) 12:16:06.38ID:1Za/GAk+p
>>273
「swiftがダメな3つの理由」とか
2017/03/21(火) 12:19:09.63ID:H55j2XV7d
>>273
お、久しぶりに出てきた

全部の「とか」に反応するわけじゃなくて
選択的に反応してるのか?

しかしその選択基準がまだよく分からないな
2017/03/21(火) 12:37:34.87ID:H55j2XV7d
>>269
うん、

マルチプラットホーム対応を言語レベルでは行わない選択をした=実行環境ネイティヴ(多くの場合はCで提供されている)とのインターフェースが必要

だと思ってる

without CなのにCが必要wwwって煽ってる人は
言語仕様とネイティヴインターフェースを混同しているおバカな自分をアピールしたいんしゃないかな?
278デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
垢版 |
2017/03/21(火) 12:39:40.14ID:huV0U58I0
>>269
Multi-platform目指してると思うよ!
Linux, macOSとで動くし。
Windowsでもそのうち動く様になる。bash, vimが動く様に。
279デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
垢版 |
2017/03/21(火) 12:41:05.23ID:huV0U58I0
>>270
A + BでそのError Occuredの場合、
大抵は、
Int(A) + B
ってするとOK
2017/03/21(火) 12:45:05.87ID:MDnLMEwZd
>>278
動く、使える=swiftがswiftプラットフォームとしてマルチを目指しているではない
2017/03/21(火) 12:52:34.12ID:1Za/GAk+p
>>278
cygwinポーティングはとっくに公式にマージされただルルォ
Androidでも動くしコミュニティの愛すべき馬鹿どもは頑張ってる

>>279
それ、Int(A)がキャストじゃなくコンストラクタ呼び出しで生理的に気分悪いよな
どこまで最適化走るか不明瞭だけど普通に考えて性能悪化を手助けしてる
2017/03/21(火) 12:59:01.94ID:I3nNj3Lbp
オプショナル型ちょ〜便利
型類推もちょ〜便利
文末にセミコロン不要なんてサイコー
letとvarの使い分けがありがたすぎ
switch文が強力すぎて鼻血でたー
enum構文がおいしすぎてよだれ出るぅ
Playgroundが便利すぎぃ
他にもまだまだたくさんよりどりみどりぃ
283デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
垢版 |
2017/03/21(火) 13:52:46.38ID:huV0U58I0
>>281
キャストとは、Superclassを同じくするインスタンスどおしの型変換。

IntとCGFloat間でキャストできる方が気分悪い。
2017/03/21(火) 14:19:23.23ID:H55j2XV7d
>>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も今の所後者に属してると思うよ
2017/03/21(火) 14:49:45.32ID:LQyko2ZP0
>>283
お前それプリミティブ型のintとfloatでも同じ事言えんの?

基本的な数値型をプリミティブ型として一般的に提供しないSwift
プリミティブ型ではなく構造体型で全数値型を提供する意義は分かるが性能劣化してるんだよなぁ
286デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
垢版 |
2017/03/21(火) 14:49:46.32ID:huV0U58I0
>>284
THX

Single UNIX Specificationってのがあるのね。
287デフォルトの名無しさん (ブーイモ MMdf-S3kY)
垢版 |
2017/03/21(火) 15:22:22.74ID:vtLrbY1LM
なんでここCのシンタックスを外したことをwithout Cって言ってるのに
without CつったらCの機能が呼べないようにならないとおかしいだろ?
とかとんちんかんなこと言う奴しかいないのん?
ラトナーが草葉の陰から泣いてるぞ
2017/03/21(火) 15:40:06.05ID:DXgiF4dPp
日本語でおk
289デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
垢版 |
2017/03/21(火) 15:50:06.39ID:huV0U58I0
>>285
Swiftの高速演算に対する思想。高速演算必要ならClangで書いてね。Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。例:RxSwift/RxCocoa/Runtime

高速演算したけりゃ、その部分をClangで書いてSwiftから呼べば良い。
2017/03/21(火) 16:06:44.92ID:p7k0dZ7/0
>>285
@_transparent付きで中でビルトインの変換呼んでるだけだからCやC++と比べても性能劣化なんて皆無だと思う
実際にIR見ても別に無駄にジャンプしたりしてない
素でsitofpとかしてるだけ
ナローイング変換はprecondition入るけどそれも最適化されるし
2017/03/21(火) 16:27:53.04ID:MDnLMEwZd
Clangっていうとコンパイラしか思い浮かばないんだが
2017/03/21(火) 17:51:22.44ID:pxhdVPhBp
> Frameworkって仕組みを用意するから、Clangのソースをemmbed inしてね。って事なのだ。
Swift Package Managerがクソな完成度でSwift Framework LibraryにC言語のソースはembed inできないんだけど...
まぁそもそもアレはFramework Libraryを生成するコマンドとしても成り立ってないから論外なのかもしれんが

Swift公式として真っ当な技法を提供してなくて、バッドノウハウとしてRxSwiftやRxCocoaがやってることをやれってことなんだろうな(ウボァ
293デフォルトの名無しさん (スッップ Sddf-8YZg)
垢版 |
2017/03/21(火) 18:48:58.62ID:PXKTLJIMd
>>284
「一度コンパイルして作成したアプリとか」の「とか」は、「一度コンパイルして作成したアプリ」以外の何?

> macでも、winでも、unixでも、携帯でも
macはハードウェア
win、unixは、オペレーティングシステム
携帯は動詞

「C言語とか」の「とか」は、「C言語」以外の何?
2017/03/21(火) 19:25:34.11ID:I3nNj3Lbp
一度コンパイルして作成したアプリとか
一度コンパイルして作成したアプレットとか
一度コンパイルして作成したサーブレットとか

C言語とか
C++とか
Pascalとか
2017/03/21(火) 19:42:18.10ID:jxZBoDQT0
>>293
NG: macはハードウェア
OK: OSはmacになり、ハードウェアはMacのまま

揚げ足取るのって楽しいの?
アスペなの?
2017/03/21(火) 19:59:01.53ID:H55j2XV7d
>>293
この場合のとかの用法は明確に定義しないことを明示するための、、、、、、

とかではなくて、

説明しよう!(富山敬風)
ターゲットが特定のキーワードに高確率で定型のレスをつけることを利用して
ターゲットのレスを意図的に引き出そうとする
ドメイン特化キーワード、いわゆる釣りワードである
(↑これが言いたかっただけなのだ)

釣りとわかって付き合ってくれてありがとう
2017/03/21(火) 20:48:23.31ID:2GTRnHWPM
>>283
え、そうなの?
swift界ではそういう定義なん?
2017/03/21(火) 20:59:06.98ID:MDnLMEwZd
>>292
ゲロ吐く
2017/03/21(火) 21:05:21.27ID:/qkJhfYu0
>>295
アスペ好き
2017/03/21(火) 22:39:55.95ID:O0GOXggs0
アスペとかと遊ぶためのキーワードに爆釣(釣り糸タラー

>>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;
}
2017/03/21(火) 22:40:48.24ID:O0GOXggs0
スマン、後者のコマンド間違えた
% clang -S -O test.m
で読み替えて
2017/03/22(水) 01:02:49.55ID:FLAiJ+iN0
>>300
当たり前だけどそのコードじゃ、どっちも意味のない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と同じ
2017/03/22(水) 01:09:43.24ID:+9rAaXcc0
var i = Inf(f)
じゃないと
int i = f;
と等価じゃなくね?
んでもってCではセミコロンいるけどね
2017/03/22(水) 01:15:25.70ID:FLAiJ+iN0
>>303
たしカニ
まぁ変わらんけど
2017/03/22(水) 11:24:01.24ID:kq8u5G9J0
数値の型変換がイニシャライザなのは良いけど
情報欠落するケースかどうかが変換箇所のコードで分からないのは好きじゃない

Int32→Int64のような拡張でも暗黙変換しない方針を選んだのなら
逆に縮小をラベル付きにしてコードから判別出来るようにして欲しかった

  Int32.init(_: Int16)
  Int32.init(narrow: Int64) // init(_: Int64)
  Int32.init(truncatingBitPattern: Int64)

例えばC#では拡張は暗黙変換、縮小は明示キャスト必須になっている
2017/03/22(水) 12:38:51.99ID:dwmeJil9d
そうだよな、CでもC++でもSwiftでも
自信を持ってキャストできた試しがない
何が起こるキャストなのか詳細に分かると便利だね
2017/03/22(水) 12:43:22.27ID:dwmeJil9d
>>282
こん中だとけっこう感動したのは

>switch文が強力すぎて鼻血でたー

これだな
複雑なif文の入れ子がかなりシンプルにできる


日常的に一番お世話になってるのはオプショナル型
ヌルポ踏むことが無くなったかな
308デフォルトの名無しさん (ワッチョイ 03f3-JN/B)
垢版 |
2017/03/22(水) 13:02:23.51ID:GcLM8SyP0
>>305
おれの得意なXXXと、どうして違うんだぁぁぁぁ。
よくあるよね。
2017/03/22(水) 14:23:57.53ID:kq8u5G9J0
>>308
得意かどうかや違うかどうかは関係無いよ
考慮された上での仕様かどうかという話

数値型の暗黙変換を無くしたことは前進だと見ている
しかしその結果、拡張変換の構文が縮小変換に追いついてしまい
非対称性による利点が失われてしまった
2017/03/22(水) 15:23:52.69ID:dwmeJil9d
>>308
まさにこれ

Perl風の正規表現サポート構文を全言語で採用しないなんて信じられない!

文字列処理なんてプログラミングの基本中の基本でしょ!
一文字ずつの処理をプログラマが書くなんてあり得ない!!


待ってるぜSwift5
2017/03/23(木) 09:17:23.40ID:9ddE+onEp
>>307
1.x初期にif letを子入れしてた時はシネと思ってたけど今のif, switchは便利よな
パクリ元と思われるrustより使い勝手よい
2017/03/27(月) 13:39:55.07ID:9ObHSaYAd
型推論削除まだー?
2017/03/27(月) 14:34:32.14ID:jJTT24eR0
>一文字ずつの処理をプログラマが書くなんてあり得ない!!

いや、じゃあ誰が書くんだおw
アプリプログラマ、だけな、それ言うの
あと、1文字ずつの処理「も」かける、というのが便利

とりあえず「デフォ」を便利にして欲しい
314デフォルトの名無しさん (ササクッテロラ Spd3-1VOV)
垢版 |
2017/03/27(月) 20:33:27.48ID:d0WItvzjp
勉強で単純なカメラアプリを作ってるんだけど、せっかくだからフレームとサイズだけはオリジナルにしたい
でもやり方がよく分からなくて困ってる
良ければ誰かヒントをくれないだろうか
2017/03/27(月) 20:57:49.35ID:MSHIb1n80
UIWindowクラスでググったら?
と思ったら、すぐ見つかった。

“UIImagePickerController camera​Overlay​View”でググレカス
http://chicketen.blog.jp/archives/7404852.html
2017/03/28(火) 11:35:36.43ID:t5HIbgfEd
>>313
>いや、じゃあ誰が書くんだおw
>アプリプログラマ、だけな、それ言うの

もちろん、カーネルプログラマや、ライブラリプログラマの皆さんの成果を美味しくいただけるという前提の話です。
アリガタヤ〜

なんか、入力が文字列だと、自分でプログラム組んで処理する以外の方法を思いつかない人が多くて困るのだ。
317デフォルトの名無しさん (ササクッテロル Sp17-kVPK)
垢版 |
2017/03/30(木) 06:19:29.38ID:W8d4MsA8p
>>315
ありがとう
それを足がかりに頑張ってみるわ
318デフォルトの名無しさん (アウアウオー Sa1f-mlhd)
垢版 |
2017/03/30(木) 08:42:10.41ID:9khgRv1/a
https://goo.gl/8by4rX
これは嫌だなー。。本当?
319デフォルトの名無しさん (ワッチョイ 83f3-c5kk)
垢版 |
2017/03/30(木) 13:01:15.79ID:9EoNq1220
guro
2017/04/01(土) 12:38:15.61ID:rvZpcbcFp
let isFool = false
let YouAreFool = !(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!(!isFool))))))))))))))))))))))

今年のグーグルのエイプリルフールネタはイマイチだね
2017/04/07(金) 23:27:50.08ID:A4pCb4U0a
過疎りすぎだろ
お前らやる気あんのか

let π = Double.pi
2017/04/08(土) 09:36:51.95ID:jKlH6mxl0
>>321
>let π = Double.pi
おぉー、動くね!
2017/04/08(土) 09:37:52.65ID:FmwPLc4P0
そんなのに驚かれても...
とっくの昔にJavaでも動くけどな...
2017/04/08(土) 10:33:14.51ID:jKlH6mxl0
>>323
俺、変数名に英数記号以外が来ると、拒否反応を起こす。
古いのかなぁ?俺って。

だから、let pi = Double.pi
が好みなんだけど。
2017/04/08(土) 10:36:29.24ID:FmwPLc4P0
>>324
普通は使わない
Javaでもutf8対応を示すためのただのネタで、これを本気で使ってる奴はいないだろう
2017/04/08(土) 10:50:30.96ID:63G3fI6va
Option + P でπが入力できることは当然知ってるよな?
2017/04/08(土) 11:15:21.87ID:zwbfOwFqd
知らねぇだろお前ら感がにじみ出すぎててイタい
2017/04/08(土) 11:36:08.72ID:63G3fI6va
なんだ知らなかったのか
1つ賢くなったな
2017/04/08(土) 12:01:07.48ID:FmwPLc4P0
聞いてもいないのにいきなり言い出して確かにイタいな
2017/04/08(土) 12:17:13.50ID:59elDVKip
急にJavaを比較対象として出して草
ObjCと比較しろやw
2017/04/08(土) 12:21:16.17ID:FmwPLc4P0
>>330
??
2017/04/08(土) 12:50:51.72ID:jKlH6mxl0
>>326
うぅー。知らんかった。というか、忘れてた。

昔ΩがOption-Zで入力できるのを使ったが、それっきり。
2017/04/08(土) 12:53:01.39ID:jKlH6mxl0
>>330
Javaとの比較歓迎なんだけど、俺は。

Javaで仕事した事ないけど、情報処理の試験対策で勉強したし。
Design Patternの本読むのに、Javaで理解したし。
2017/04/08(土) 13:26:15.68ID:bcrLvy920
4マダァ?
2017/04/08(土) 13:33:22.85ID:59elDVKip
iアプリやAndroidくらいしかやったことないと比較はJavaで適当だろうけど
動作OSとかランタイムの在り方とか言語文法の系譜とか違いすぎる

同じAppleOSで動いて、.soランタイムだけ要して、without C程度の系譜の同じ土俵で評価すべきじゃね
自分が知ってる言語って程度で比較に挙げるならC#でもGoでもRubyでもなんでもアリだからw
2017/04/08(土) 14:39:02.66ID:bcrLvy920
非ASCII識別子のネタなんて何の言語引き合いに出しても別に問題ないっしょ
2017/04/08(土) 16:52:22.92ID:EanGPAz+0
おっπ
2017/04/08(土) 17:04:27.68ID:FmwPLc4P0
はい
2017/04/09(日) 16:19:12.39ID:dBjEGHWC0
揉ませろ
2017/04/13(木) 16:26:07.95ID:P0VwbMdt0
メモリー管理方式取り入れるってニュース見かけたんだけど
Swiftまた互換性無くなるんか?
2017/04/13(木) 16:43:28.23ID:0o/hjfdWp
>>340
>>69
2017/04/13(木) 16:50:05.36ID:JlstuCPca
「タイム互換」短すぎやでほんま
タイム互換いいたいだけやけどな
2017/04/13(木) 16:58:45.96ID:Z4M4iBLva
      _          __
     /  \       /    \
   /     \    /       \
  /  / ̄ ̄\ \ / / ̄ ̄ ̄\__\
// ̄     / ̄| ̄ | ̄`くヽ__/>   |  \
 ̄        `ー'`ー'`ー'/刧凵R    ̄ ̄
           |   | / 、/⌒ヽ,ヽ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           |   | | | 〇 O) |   < ブタモ オダテリャ キニノボル。。。
           |  __|_> ̄ ̄ ̄く       \___________
           |  (___ノ      |
           |  __|_|_     /e
           |  (___ノ、___/
           |    |
           |   |
           |   |
           |   |
           |   |
           |   |
2017/04/13(木) 17:49:06.53ID:P0VwbMdt0
見つけた。つい最近のやつ

swiftメモリオーナシップのマニフェストが公開
https://www.infoq.com/jp/news/2017/04/swift-memory-ownership-model
2017/04/13(木) 17:53:40.70ID:Z4M4iBLva
オナニストに空目した
2017/04/13(木) 18:33:03.91ID:WsZTJ2Pb0
またInfoQは2ヶ月前の話を今更ニュースにして
今日の本当の界隈ニュースはABI Dashboardがやっと公開されたこと
2017/04/13(木) 20:46:27.09ID:gaxJh+J40
>>344
翻訳がひどいなぁ。

ChridではなくChrisだし、マニフェストではなく、「今後の予定」だし。
2017/04/13(木) 21:43:29.30ID:0o/hjfdWp
結局、C++11 unique_ptrの文法ラップなのかな
ObjCでも使えるなら使いたいから頼むよー
2017/04/14(金) 00:10:47.26ID:CJipXrOe0
Rust inspiredとのことだからunique_ptrなんてレベルじゃない
ライフタイムかそれに類するものを導入する気だろう
2017/04/17(月) 11:21:13.44ID:rZd85UOy0
Swift4で何がかわりそうなのか
ttp://qiita.com/d_date/items/b3562f542afc306791ce
351デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
垢版 |
2017/04/17(月) 11:34:40.27ID:H6wmE3lW0
SE-0110

Swift3.1
let fn1: (Int, Int) -> Void = { 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って感じでアクセスする。ってこった。
352デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
垢版 |
2017/04/17(月) 11:41:37.59ID:H6wmE3lW0
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が戻り値

どっちだ?
353デフォルトの名無しさん (スプッッ Sd3f-IVUN)
垢版 |
2017/04/17(月) 12:20:26.64ID:vkFfzl9Jd
>>352
AとBの二つの引数を持つclosureを
指定したAに値を固定した場合のBだけを引数にもつclosureを返す、というclosureに変換する関数
2017/04/17(月) 16:19:08.73ID:3GD20cJp0
>>352
1の方だね
355デフォルトの名無しさん (ワッチョイ eb92-D+C1)
垢版 |
2017/04/17(月) 17:25:42.88ID:D/VW2xRY0
もういい加減にしてほしいな
言語ヲタが「ボクチンが考えた最高の言語」遊びしてるようにしか見えない
2017/04/17(月) 18:59:19.87ID:nd1F7ywi0
批判なら具体的に
でなければアンチスレへ
2017/04/17(月) 19:03:02.31ID:kDXw+CZ7a
->が出てきたらその時点で->より前が引数、->より後ろが戻り値
2017/04/17(月) 20:39:28.09ID:oD+wMWyY0
>>357
なるホドォ

((A) -> B) -> C
これは、
引数 ((A) -> B)
戻り値 C

ですね。
2017/04/17(月) 20:40:25.07ID:oD+wMWyY0
>>358
RxSwiftのソースみてると、こんなんばっかり。

Reactive.itemsメソッドとか!
2017/04/17(月) 20:46:01.79ID:lXU86btga
ヒマなんですね
361デフォルトの名無しさん (エムゾネ FF3f-IVUN)
垢版 |
2017/04/17(月) 21:24:11.38ID:6RZC9xguF
>>354
まあ、curry化ってそういうものだしね
2017/04/17(月) 21:25:12.82ID:lXU86btga
インド人もびっくりだよね
2017/04/17(月) 22:47:26.87ID:+gxNPbQK0
>>355
SE-0110でググって最初のリンク開けば Bug: SR-2008 が目に入って
バグ対応なんだな、くらいはすぐに察せる

目的や理由も捉えないと余計に遠回りになるだけだぞ
2017/04/17(月) 23:10:09.48ID:/M+7HM4c0
>>350
いいからさっさと++、--、for(;;)を復活させろ
2017/04/17(月) 23:10:51.44ID:/M+7HM4c0
>>352
くっっっそ読みにくいな
さすがswiftだわ
2017/04/18(火) 00:02:25.56ID:xQgWcwpBp
>>355は4で破壊変更あることを今更知ったnewbieじゃないかな
破壊しないswiftなんてswiftじゃないと思って使ってるけど、3で安定したと思っちゃった子はそこそこいそう
2017/04/18(火) 00:31:05.68ID:nxzSbT3m0
>>355
こんなぶれぶれの独善言語についてってる奴の気が知れんわ
2017/04/18(火) 00:36:29.63ID:84Yej/faa
そんな言語のスレをヲチしてるお前もなー
2017/04/18(火) 10:13:46.23ID:GdlQD+8N0
型表記中の「->」は右結合ってことでいいんだよね?
2017/04/18(火) 12:14:40.44ID:Q87oUFLG0
https://developer.apple.com/library/content/documentation/Swift/Conceptual/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) としか解釈できない
371デフォルトの名無しさん (ワッチョイ 5bf3-CJGP)
垢版 |
2017/04/18(火) 12:45:37.54ID:3Ay0w4VK0
>>370
THX

原則は、
1. 引数は()で囲む。囲まないと、error: require parentheses
2. 右から左方向へグループ化
例:
(S) -> (T) -> (U)

(S) -> ((T) -> (U))
と解釈される。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。