X



Swift part11 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 2b11-WRiT)
垢版 |
2017/06/28(水) 17:58:29.74ID:KUDOoNV30
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

関連スレ

プログラミング言語Swift Part4
http://egg.2ch.net/test/read.cgi/mac/1484763495/

[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad]
http://egg.2ch.net/test/read.cgi/mac/1484217623/

Xcode part14
http://egg.2ch.net/test/read.cgi/mac/1476190499/

Swiftアンチスレ part1
http://mevius.2ch.net/test/read.cgi/tech/1458491343/


前スレ
Swift part10
http://mevius.2ch.net/test/read.cgi/tech/1487552413/

スレ立て時は1行目に「!extend::vvvvv」
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0832デフォルトの名無しさん (ワッチョイ bf76-A4HH)
垢版 |
2018/03/04(日) 21:51:04.40ID:whlExQH50
実務的にというか、本来 aa: A でいい、プログラミング上/アプリ上nilな場合が無いような場合のことでしょ。んな場合はoptionalはめんどくさいだけだし

最初に作るインスタンスはどやったって(まあ、自分自身を突っ込めば回避できるだるけどw、それもできなさげ)nilにしかならないし、わざわざoptionalだのあることを無視したあくまでも(個人的な)実務的な手法な感じ
0834デフォルトの名無しさん (ワッチョイ dfb3-jrZP)
垢版 |
2018/03/04(日) 22:41:01.48ID:eO6xjr3+0
そっかぁ
別の変数で管理云々はちょっと勘違いしてたわ
あと俺がoptionalって言ったのは通常のoptionalのことで
implicitly unwrapped optionalじゃなくってって意味

一般的な再帰構造なら基底ケースでnilになるだろうから
それをimplicitly unwrappedで定義するのはすごく違和感があるんだけど
そういうやり方もあるってことね
0842デフォルトの名無しさん (ワッチョイ 4fb3-LWq8)
垢版 |
2018/03/18(日) 20:43:29.57ID:9zPyp0Eq0
>>840
考え方的には別配列として切り出すのでなくビューなんだってさ(copy on writeだけど)

String.CharacterView.IndexみたいにIntじゃないIndexも多いから
コレクション全般に対しての考え方として
Sequence的に扱ったり、startIndexやindex(after:)などのIndex用メソッドに慣れて行ったほうがいい
0844デフォルトの名無しさん (ワッチョイ 27c3-+yq1)
垢版 |
2018/03/25(日) 20:52:36.71ID:mPK4VdN40
Objective-c全く触ったことないんだけどSwiftの勉強はじめても問題ない?
0846デフォルトの名無しさん (ワッチョイ 5b80-AyCB)
垢版 |
2018/03/25(日) 21:33:40.94ID:U5SlEUJl0
ゼロ番最初の〜とか言わないしな。
0847デフォルトの名無しさん (ワッチョイ 19ab-Ys2M)
垢版 |
2018/03/31(土) 14:51:14.31ID:HODGx0EY0
プログラミングはじめたばかりの初心者ですけど質問してもいいですか?
Swiftやってます
0848デフォルトの名無しさん (ワッチョイ 19ab-Ys2M)
垢版 |
2018/03/31(土) 15:15:55.26ID:HODGx0EY0
過疎って返ってくるのが遅そうなので勝手に質問します

var m:Int = 0
do {"index:" + String(m)} while 10 > m++


で得られる答えがサイトではindex:0~index9だと書いてあったのですが理解ができません。
私はmが9であったらindex9となって、while10>m++の条件は++がmの後につくので9で比較されるのでtrueになり繰り返しが続行されると考えました。
なのでもう一度処理が実行されてindex:10まで出るのではないでしょうか。
慣れてないのでトンチンカンなこと言ってるかもしれませんがよろしくお願いします。
0850デフォルトの名無しさん (ワッチョイ 71b3-YG9/)
垢版 |
2018/03/31(土) 15:43:18.30ID:QwOnP0D50
>>848
>index:10まで
その理解で合ってる

それと
・printもreturnも無いので答えという意味では何も無い
・do-while文は廃止された
・「++」(インクリメント)構文は廃止された

そのサイトを読むのは止めて
Swift4または2017年9月19日以降に書かれたもので学習した方がいいよ
0852デフォルトの名無しさん (ワッチョイ 19ab-Ys2M)
垢版 |
2018/03/31(土) 20:20:46.22ID:HODGx0EY0
>>849
>>850
ええまじか…
では++nのところはn+=1とかにすればいいのでしょうか
サイトは別のサイト探そうと思います
0854デフォルトの名無しさん (ワイモマー MM11-/feT)
垢版 |
2018/04/08(日) 00:19:14.78ID:Dxb/j7BgM
何でこんなに仕様をコロコロ変えるのかな?
0855デフォルトの名無しさん (ワッチョイ a923-6Vn5)
垢版 |
2018/04/08(日) 11:09:07.07ID:YK+KPtHu0
Dと同じ運命
0861デフォルトの名無しさん (アウアウウー Sa11-9iKp)
垢版 |
2018/04/11(水) 10:30:32.27ID:3ZHviI/Za
iPadのplaygroundsでもフレームワークインポートしていろいろなことできるので
コーディングする勉強にはもってこいですね。
0864デフォルトの名無しさん (ワッチョイ e3b3-7MKD)
垢版 |
2018/04/20(金) 06:07:43.03ID:yIya3QmH0
iOSしか対応してないから。
かつ、短期間の間に破壊的変更が多すぎる。
ちなみにもうxcodeでリファクタリングは出来るようになったんだろうな?
まだ出来てないなら流石にまずいぞ
0870デフォルトの名無しさん (ワッチョイ 17a7-GfG9)
垢版 |
2018/04/20(金) 14:05:50.29ID:44jSDzB50
>>867
ciってなんだっけ?
CLIのこと?コマンドは普通に当然あるね。swiftでインタラクティブ(?)なとか。というか、コマンドだけじゃないのかな。Kituraもおすすめ開発環境はXcodeでmacOSでだったような気がしないでもない
0874デフォルトの名無しさん (ワッチョイ 17a7-GfG9)
垢版 |
2018/04/20(金) 20:10:03.38ID:44jSDzB50
>>871
なるほど、そんなんあったのか。知らんwどうも勉強になった
だが、それだとちょっと文的に変かな。知っててかな?

>>872
それっぽいんだけど、コマンドでええやーん、もしくは正しく(?)なCLIと。なら悩まないのにw REPL?また謎なw
0876デフォルトの名無しさん (ワッチョイ 17a7-GfG9)
垢版 |
2018/04/20(金) 20:28:01.17ID:44jSDzB50
>>872
ああ、REPLってそういうことか。REPLにciと表せられるナニかあるのかと思った
そのREPLななが swift(コマンド)でインタラクティブ(?) ね。まあわかってるだろうけど、いちおう
0877デフォルトの名無しさん (ワッチョイ 17a7-GfG9)
垢版 |
2018/04/20(金) 20:43:35.68ID:44jSDzB50
>>871
おお...
https://developer.apple.com/jp/documentation/ToolsLanguages/Conceptual/Xcode_Overview/ContinuousIntegrationTesting.html#//apple_ref/doc/uid/TP40010215-CH64-SW1
なんてあったりするのね。だったら文的におかしくはないな

だが、
>Xcodeは継続的インテグレーションを実現するために、Xcodeサービスを活用しています。これはOS X Serverに付属するもので、
> これはOS X Serverに付属するもので
> これはOS X Serverに付属するもので
(しつこいw) macOSにすら入ってないのに、ある意味単なるSwiftだけなLinuxに入ってるとは思えないなあ

まあ俺が知らないだけだが、この世界は広いなあw
0879デフォルトの名無しさん (ワッチョイ 1723-8E8L)
垢版 |
2018/04/21(土) 16:31:20.13ID:Zke6MJB80
知らないなら黙っててください
0884デフォルトの名無しさん (ワッチョイ e3b3-7MKD)
垢版 |
2018/04/22(日) 19:29:48.14ID:bBR6Oib80
知らなきゃ別に今知ればいいし知らないやつを馬鹿にしても生産的じゃ無いよね。

ちなみに答えが無いってことはciをやるには未だにmacがいるってこと?
react-nativeの方が便利だな。これはもう
0885デフォルトの名無しさん (ワッチョイ 17a7-GfG9)
垢版 |
2018/04/22(日) 20:20:53.75ID:FSKGQtgf0
Swiftというか何らかの言語がというのとは関係なくね?
コンパイラ等の基本的な開発環境とは別のことだろう。やるとしたらEclipse周りな人々とか、その辺りのOSS界隈だろうな
0891デフォルトの名無しさん (ワッチョイ ff96-iqNU)
垢版 |
2018/04/23(月) 15:42:30.99ID:B+G5EdcD0
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\    < ciやるにはMacが必要
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー’´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一””””~~``’ー–、   -一”””’ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

          ____
        /_ノ  ヽ、_\
 ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ   <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒)   
| / / /     |r┬-|    | (⌒)/ / / //       
| :::::::::::(⌒)    | |  |   /  ゝ  :::::::::::/      
|     ノ     | |  |   \  /  )  /
ヽ    /     `ー’´      ヽ /    /
 |    |   l||l 从人 l||l      l||l 从人 l||l  バンバン
 ヽ    -一””””~~``’ー–、   -一”””’ー-、
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
0893デフォルトの名無しさん (ワッチョイ 0bb3-hWI/)
垢版 |
2018/04/23(月) 20:25:55.66ID:HCf1mURQ0
いまどきMacじゃないやつは人じゃないというか
ただの犯罪者予備軍だしな。
サイバー犯罪で捕まって「いつも暗い部屋でパソコンカタカタやってて
いつかはこうなると思ってました」と証言される存在。
0894デフォルトの名無しさん (アウアウカー Sa43-9Dln)
垢版 |
2018/04/23(月) 20:44:35.06ID:snLtrZOza
いまどきMac持ってるやつは人じゃないというか
ただの犯罪者予備軍だしな。
サイバー犯罪で捕まって「いつも暗い部屋でパソコンカタカタやってて
いつかはこうなると思ってました」と証言される存在。
0897デフォルトの名無しさん (ワッチョイ 0e8a-wgWx)
垢版 |
2018/04/24(火) 16:22:03.29ID:v7CSxy8v0
VSCode使いやすいしな。
0904デフォルトの名無しさん (アウアウカー Sadd-wPGC)
垢版 |
2018/04/27(金) 20:44:42.93ID:oJis0HV7a
CPU変わったって言語仕様まで変える必要なかろう
0907デフォルトの名無しさん (アウアウカー Sadd-wPGC)
垢版 |
2018/04/30(月) 17:54:40.54ID:NF3/uQW/a
インラインアセンブラはC言語に組み込んだ反則技みたいなものなので他の言語は是非とも実現しないでおいて欲しい。
0909デフォルトの名無しさん (ワッチョイ 933e-39yo)
垢版 |
2018/05/01(火) 10:14:42.05ID:OUwlkFDk0
OSというかファイルシステムに仕掛けあってMac/iOSは
複数のバイナリ実行ファイルをパッケージの中の別ディレクトリで持てるからなぁ
PPC/intel時代とか32bit/64bitバイナリとか。
0910デフォルトの名無しさん (ワッチョイ 5b76-JoRN)
垢版 |
2018/05/01(火) 16:06:29.62ID:M+3XKBR00
パッケージの中の別ディレクトリじゃないよ。ひとつの実行ファイルの中で。実行ファイルに限らずFrameworkなどなども。Mach-Oっつうて。より古いのもディレクトリで分けではないな
0911デフォルトの名無しさん (アウアウエー Sa23-cUH7)
垢版 |
2018/05/01(火) 16:33:58.96ID:hs19eTspa
フーン(ω)
0913552 (ワッチョイ db21-KzCP)
垢版 |
2018/05/01(火) 21:00:42.03ID:LNs8frCc0
インラインアセンブラはまれに触る事があった。Linuxからの移植位なのでレジスタ退避の違い位しか分からない。

当時はgcc拡張で書いてた記憶があるけど、今clangだとどう書くんだろう?
0914デフォルトの名無しさん (ワッチョイ 71b3-txLX)
垢版 |
2018/05/02(水) 09:08:10.24ID:rm9ZE9J90
なんか最近審査時間めっちゃ短くね
GWだからか
0915デフォルトの名無しさん (ブーイモ MM19-C4HX)
垢版 |
2018/05/11(金) 08:05:07.81ID:YzDAqhh0M
Swiftでのc配列取り扱いについて教えてください。

CoreaudioにAudioChannelLayoutというStructがありますが
これはcの可変長配列AudioChannelDescriptionを含む定義になっています。
SwiftではStructは値型なのですが、Structが持つ配列が
(AudioChannelDescription)となっていて、単一値のtuppleとして
importされており、一つ目の値しかコピーされないのではないか、
可変長structとして扱えていないのではないかとかんがえました。

swiftにおけるc配列のstructはどの様に扱われているのでしょうか。
Data型なりNSData型なりでbacking storeを確保して扱うのが
安全でしょうか?
0916デフォルトの名無しさん (ワッチョイ 2da7-2PF3)
垢版 |
2018/05/11(金) 09:37:57.63ID:Ak2M/G2h0
単一値って書き間違いかと思うが、内包する要素が単一型のTuple=ある型の可変配列でしょ。それでうまくCの可変StructをSwiftにマップ/ブリッジされていると思うけど

初期化/作成は、
init(mChannelLayoutTag: AudioChannelLayoutTag, mChannelBitmap: AudioChannelBitmap, mNumberChannelDescriptions: UInt32, mChannelDescriptions: (AudioChannelDescription))
で、作成可能のようだけど。Cだと自分で必要バイト数計算してのallocしてのをこの中でやってるでしょ。コピーもこれ使えかな
0917デフォルトの名無しさん (ワッチョイ 55b3-k37M)
垢版 |
2018/05/12(土) 11:23:56.18ID:NQvTiPFY0
定義見たけど AudioChannelDescription[1] が自動変換された結果でしょ
タプルは普通に固定サイズ
allocするサイズが可変だからinitのタイミングじゃ遅い

NSData や UnsafeMutablePointer<UInt8>.allocate で確保することになるから
値型として扱いたいならラッパーを探すか書くかしないと駄目
0920デフォルトの名無しさん (ワッチョイ cb81-2PF3)
垢版 |
2018/05/13(日) 09:13:28.29ID:FE+GfUzy0
>>915
Swiftはwithout CなんだからC配列とかどうでもいいんじゃないの?
C配列使えるObjective-Cなら何も問題はなかったわけだ
それをわざわざSwiftとかいうわけわからん言語導入するからそういう話が出てくる
韓国が日本にやってるような絡み方すんなよもう
0921デフォルトの名無しさん (ワッチョイ cb81-2PF3)
垢版 |
2018/05/13(日) 09:15:02.38ID:FE+GfUzy0
Swiftは自分でC要素排除したんだから、もうCに頼るなCに絡むなまじで
0923デフォルトの名無しさん (ワッチョイ 9b21-C4HX)
垢版 |
2018/05/13(日) 12:30:06.82ID:M2GRXTqJ0
>915です。
じぶんの理解ですが、簡単に言うと、
・SwiftはC構造体をStructとして扱う
・SwiftはC配列をタプルとして扱う
・SwiftはStructを値型として扱う
・C構造体にC配列ポインタではなくC配列自体が含まれる場合には、SwiftでStructとしてコピーした際に固定長Structとしてコピーされ、破壊されてしまう
・なので、この手の構造体をSwiftで扱う場合には、ポインタ+別バッファの組み合わせが必要

ソース晒しておきます。
ttps://github.com/MyCometG3/cutter2/blob/master/cutter2/LayoutConverter.swift
0924デフォルトの名無しさん (ワッチョイ 55b3-k37M)
垢版 |
2018/05/13(日) 12:45:45.14ID:XcX7x9Bh0
>>920-921
Appleが提供してるライブラリがそうなってるんだから
それを使う以上はwithout Cになるわけないじゃん?

というか言語仕様からC要素排除しただけで、Swift環境自体からC要素排除したわけではないよ

↓のソースにも「Unsafe」という文字が沢山あるっしょ
https://github.com/apple/swift/blob/master/validation-test/stdlib/CoreAudio.swift
https://github.com/apple/swift/blob/master/stdlib/public/SDK/CoreAudio/CoreAudio.swift

公式でSwift用のラッパー用意しろよとは思うけど
0925デフォルトの名無しさん (ワッチョイ 55b3-k37M)
垢版 |
2018/05/13(日) 12:55:00.27ID:XcX7x9Bh0
>>922
https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10.8.sdk/System/Library/Frameworks/CoreAudio.framework/Versions/A/Headers/CoreAudioTypes.h#L866
> mChannelDescriptions[1]; // this is a variable length array

ややこしくなるのはこれのせい

structの定義サイズからはみ出したメモリ領域も使いますっていうハック的なやり方で
sizeof(構造体)と実際に確保しないといけないメモリサイズが異なる
低レベルAPIでは割とある
0931デフォルトの名無しさん (ワッチョイ 89fa-9WOx)
垢版 |
2018/05/23(水) 19:24:23.07ID:Au5e7VGg0
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

S91U5
レス数が900を超えています。1000を超えると表示できなくなるよ。

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