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/18(土) 20:38:16.85ID:GFFJDG7E0
Objective-Cでおk
以上。
おつでした。
2017/03/18(土) 20:39:58.56ID:61cBFpsD0
>>221
printf()もシステムコール使ってるよ
write() put()はシステムコールでなくラッパー関数でライブラリの一部
遅いのはシステムコールやチェック処理の回数差でバッファリングに起因する
2017/03/18(土) 22:12:10.15ID:h03j8lZL0
>>221
システムコールって遅いの?逆なんじゃない?
つまり、ライブラリ関数より早い。

だって、ライブラリ関数はシステムコールのラッパー関数なんでしょ?

俺、arc4random_uniformとか、atofとか使いまくってるんですけど。
2017/03/18(土) 22:21:36.55ID:h03j8lZL0
>>223
write()ってのは、何を指しているのでしょう?
ライブラリの一部というのだから、
FoundationライブラリString#write(to:)の事でしょうか?

なら、printfよりも遅いですよね。

put()はなんの事でしょうか?
2017/03/18(土) 23:27:27.95ID:61cBFpsD0
>>224
システムコールは特権レベル変更に伴うコンテキストスイッチなどのオーバーヘッドのため
ユーザーモードで完結するものより遅い
atofはシステムコールしない、arc4random_uniformは再シードのときだけシステムコールするようだ

>>225
>>215-219はSwiftやiOSに限らない一般的な話, >>221,223はC言語標準ライブラリまたはPOSIX
putはputsやfputcなど

通常のプログラムからラッパー関数はcdeclなどで呼ぶ
ラッパー関数はシステムコール番号などをレジスタにセットして
int 80hやsyscallなどのCPU命令を実行する
2017/03/18(土) 23:30:26.08ID:61cBFpsD0
長々書いたけど swiftdoc.org やAppleの開発ドキュメントを
見てたら多分支障無いから気にしなくていい
228デフォルトの名無しさん (ワッチョイ 035b-8e1h)
垢版 |
2017/03/19(日) 00:02:51.00ID:X9SioAAy0
>>226
なるホドォ
2017/03/19(日) 00:11:01.40ID:WMiUvz/ea
まさかこのスレにシステムコールのオーバーヘッドを気にするようなスピード狂がいたとは
2017/03/19(日) 02:31:51.49ID:MM3vmS8Q0
1,000バイトの読み書きをするのに、1バイトずつ、
syscall * 1,000回すると遅いから、

ライブラリ内でバッファを確保(バッファリング)して、
1,000バイト貯まったタイミングで、syscallを1回だけ呼ぶと、速い
2017/03/19(日) 08:50:33.86ID:BHsM6TZ60
Dispatchの良いドキュメントってありますか?英語でもいいです。mpiのparallel forと同じようなことがしたいんですが、よくわからないので勉強したいので
2017/03/19(日) 09:06:36.45ID:X9SioAAy0
>>231
Apple Gudes and Sample Codeで探せば!
Concurrency Programming Guide
とかヒットするけど。

Dispatch Queues, Dispatch SourceのSectionを参照。
2017/03/19(日) 09:46:45.92ID:QbTcqaOM0
システムコールのオーバーヘッドを気にするような人がSwiftのようなモダンな高級言語を
使うとは胸熱だな

速度をちゃんとコントロールしたいならObjective-Cじゃないと無理だろ...
2017/03/19(日) 09:55:06.98ID:yi8Y0/pHp
ObjCもlibobjc.soとかのランタイムを食わせないと動かないからダメだろ
Swiftよりはランタイム総容量は小さいけどObjCにもランタイム/ラッパー関数は必要なんだぜ?
システムコール呼び出すC関数呼ぶだけならSwiftでもできるから同じ土俵
2017/03/19(日) 10:08:01.66ID:X9SioAAy0
system callの呼び出し履歴を表示する、dtrussってコマンド見つけた。
trussのdetails版らしいけど、trussってなんの略だ?
2017/03/19(日) 10:10:39.12ID:X9SioAAy0
trussはmanのsection 1にあるはずなんだけど、documentが、ない。
なぜだ?
2017/03/19(日) 10:12:54.40ID:X9SioAAy0
truss = trace user signal and system callかな?
2017/03/19(日) 10:35:19.35ID:QbTcqaOM0
>>234
>システムコール呼び出すC関数呼ぶだけ
C言語に頼るwithout CなSwift
2017/03/19(日) 16:43:04.63ID:BRUWii050
文法はwithout Cだけど、機能はwith CのSwiftすごい!!
Modern Objective-Cとかいう微妙に時代遅れなモダン言語(笑)とは違うな
2017/03/19(日) 17:04:16.85ID:QbTcqaOM0
Swift:「文法はwithout Cだけど、機能はwith CのSwiftすごい!!」
C:「それじゃあ結局のところSwiftは文法的な見た目をモダン()にしただけの言語ってことになっちまうじゃねぇか...」
Objective-C:「」
2017/03/19(日) 17:13:15.07ID:zGHcaEctH
juliaも忘れんとって
2017/03/20(月) 10:21:19.90ID:QillsqV80
つまりインラインでC言語が書けるObjective-Cが最強ってことだな。
SwiftもC言語埋め込めるようにすれば最強になれるで。
243デフォルトの名無しさん (ワッチョイ bfd4-pP+o)
垢版 |
2017/03/20(月) 11:09:21.86ID:KXLYvEOG0
じゃあ、swiftにObjective-Cを埋め込めれば、真の最強じゃね?
2017/03/20(月) 11:21:56.39ID:XcCZvFx20
至高の言語Swiftにひざまづけ愚民ども
2017/03/20(月) 11:38:00.54ID:9CFcUwN1d
without Cにする必要性について
2017/03/20(月) 11:42:15.65ID:0inF6e9Oa
ソースが汚くなるから
王室に乞食を招き入れるわけにはいかんだろ
2017/03/20(月) 11:42:37.51ID:IesYv4al0
>>242
文法はwithout Cで機能はwith CのSwiftの最強
何が不足なのか分からんぞ?

ObjCに比べてランタイム容量がアホほど大きいデメリットは分かる
2017/03/20(月) 11:42:54.31ID:9CFcUwN1d
>>242
まあObjective-CはCのスーパーセットだからな
Cそのものを含んでると言っていい
CでできることはObjective-Cでも100%できる
249デフォルトの名無しさん (スッップ Sddf-8YZg)
垢版 |
2017/03/20(月) 13:24:38.46ID:es7jdWbid
俺はObjective-Cで、かつ、省略しない方が好き。

Swiftは、なんか、いろいろ中途半端。
あと、省略可能なのは良いけれど、省略した時にどうなるかを、考えなさすぎ。
省略時の動作は、最終的にコンパイラの実装依存になる。
よってコンパイラが変われば、全く期待した動作にならない場合だってあるんだよ。
2017/03/20(月) 13:32:26.07ID:LSRu7fHya
Swiftに、省略時の曖昧な動作なんてあったっけ?
2017/03/20(月) 13:39:46.35ID:MLqjE/IfF
>>242
Swiftでも直接Cの関数呼べるけどなんか問題ある?
このスレでも少し前にdup2()呼ぶサンプル書いてる人いたよ

個人的には
"C":{}とかで囲んで明示する必要がいるくらいには敷居を上げておいて欲しかった
今だと普通に呼べすぎて、swiftの関数なのかCの関数なのか見分けがつかない
2017/03/20(月) 14:21:57.88ID:EvEkzDYt0
>>250
型推論の事言ってんじゃないか?
別に省略してる訳じゃないのにね。

あるいは、syntax sugarの事かも。
Array<Int>を[Int]とか書いたり。
2017/03/20(月) 14:48:23.91ID:G0HPo1ICp
見分けがつかないからなんだってんだよ
2017/03/20(月) 15:03:51.36ID:OmtBFJ4n0
Swiftってザ・意識高い系って感じの言語だな
C言語の関数呼べるようにする必要ないくらいじゃないと言語とは言えんし
2017/03/20(月) 16:30:53.49ID:E6+3UOyx0
Bridging Headerもmodulemapも言語の機能じゃ無いよ
2017/03/20(月) 17:05:35.61ID:OmtBFJ4n0
without Cを謳っておいてCの関数を呼び出す
仕組みを用意してるのって滑稽だねってだけだよ
2017/03/20(月) 17:06:20.49ID:fEdZO0mtp
>>254
比較対象がVM言語やインタプリタ言語かよ
意識低いなw
2017/03/20(月) 17:13:00.01ID:G0HPo1ICp
without C を謳うのは建前
でもcが使えちゃうのは本音

日本人ならわかるだろ?
2017/03/20(月) 17:31:37.32ID:qt6rA4Ca0
>>254
Javaだけど呼んだ?
2017/03/20(月) 17:36:09.37ID:5DkpfNMbd
gccがgasコードを吐くように、swiftもObjCコードを吐けばいいんじゃね?w
2017/03/20(月) 17:43:37.75ID:EvEkzDYt0
>>260
それは難しいだろう。
associatedtype付きのprotocolとかObj-Cに移植できるの?
2017/03/21(火) 07:36:52.81ID:9HZnXlk90
gccがgasコードを吐くように、clang/swiftcがLLVM IRコードを吐く件

>>251
Swiftコード中に書くC, ObjC関数は、.swiftヘッダファイルに同名で再定義されたswift関数だから見分けつかない
Swiftフレームワークライブラリの中に入ってる.swiftヘッダ見るとC,ObjC,Swiftの全ての関数が同列に並んでてこんなことしてるのかよwwwって笑う
2017/03/21(火) 07:41:09.49ID:JY9T0YVB0
JavaのJNIだとCを呼び出すための敷居が高すぎるんだよな

でもswiftだと敷居が低すぎる

なんてワガママな俺
2017/03/21(火) 07:54:24.70ID:nRmSmnIrd
C言語の関数呼び出さないとやりたいこと出来ないわけ?
2017/03/21(火) 08:21:33.84ID:9HZnXlk90
やりたいことを出来ないんじゃなくて、>>238のように出来ることを煽りたいんだと思う
それが煽りになってるのか分からんけど

最初は(システムコールを扱う時に)SwiftだとObjCほど性能でないwwwって煽ろうと思ったら同レベルで引くに引けなくなった感じがする
単純にSwiftランタイムのばかでかさに依る性能劣化を煽ってればその通りなのにね
ランタイムのロードとか関数マップテーブルからのAPI検索とか、システムコールだと差分ないけど一般利用時に性能悪いのは必然だもの
2017/03/21(火) 09:14:33.95ID:XLp7uPXRF
Swiftでないとダメな5つの理由
とか誰か書いてよ
2017/03/21(火) 09:21:56.02ID:hTMAmD++d
1.学習コスト
2.生産性
3.スタイリッシュ性
4.流行
5.信仰心
2017/03/21(火) 10:36:30.52ID:H55j2XV7d
>>264
さあ?
あなたの作るプログラムで必要であれば必要だし
必要でないなら必要ない

うちの場合OpenCV使うのにC++ブリッジ使ってる

あと、無限ループで延々九九と答え吐き出すコンソールアプリ作っておいて
Ctrl+Cを押されたら「知るかボケ!忙しいんじゃ」と吐き出して、そのまま無限ループを続けるプログラムを作りたかったら
俺はSwiftだけで書く方法を知らないのでCの関数(と言うよりはPOSIX API)を呼び出す


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

全部をプログラミング言語に取り込むのではなく既存の仕組みとうまく連携するのがバランスの良いとの判断なんじゃないかな?
2017/03/21(火) 10:46:19.71ID:MDnLMEwZd
swiftは初めからjavaのようなマルチプラットフォームを目指しているわけでもあるまい
270デフォルトの名無しさん (スプッッ Sddf-pP+o)
垢版 |
2017/03/21(火) 11:08:08.11ID:CAHXK6Wdd
Floatを引数にとる関数で、その引数の場所で(1+n)とかやると、
Binary operator '+' cannot be applied to two 'Int' operands
ってエラーが出て嵌った。
http://stackoverflow.com/questions/40557214/swift-operator-throwing-error-on-two-ints
エラーメッセージが不親切過ぎる。
271デフォルトの名無しさん (スプッッ Sddf-pP+o)
垢版 |
2017/03/21(火) 11:11:47.89ID:CAHXK6Wdd
上のリンクでは
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.

だと、まだ分かりやすかったと思う。
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
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況