Swift part11 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
実務的にというか、本来 aa: A でいい、プログラミング上/アプリ上nilな場合が無いような場合のことでしょ。んな場合はoptionalはめんどくさいだけだし
最初に作るインスタンスはどやったって(まあ、自分自身を突っ込めば回避できるだるけどw、それもできなさげ)nilにしかならないし、わざわざoptionalだのあることを無視したあくまでも(個人的な)実務的な手法な感じ >>831
A!はoptionalやん
それ自体でnil判定出来るから別の変数も要らない
rootNodeとかならselfになるだろうし
viewDidLoadみたいなセットアップ後もnilが有り得るかどうかで決めたらいい そっかぁ
別の変数で管理云々はちょっと勘違いしてたわ
あと俺がoptionalって言ったのは通常のoptionalのことで
implicitly unwrapped optionalじゃなくってって意味
一般的な再帰構造なら基底ケースでnilになるだろうから
それをimplicitly unwrappedで定義するのはすごく違和感があるんだけど
そういうやり方もあるってことね まぁ用途によるわな
線形リストなら末端はnilやろうけど循環リストならnilはないし >>825
元の定義がstructだった。
Classに変更したら解決しました。 https://github.com/apple/swift-nio
Event-driven network application framework for high performance protocol servers & clients, non-blocking. let arr = [0, 1, 2, 3, 4, 5]
let sub = arr[3...]
sub[0] // Fatal error: Index out of bounds
このSliceのインデックスが元の配列のインデックスのままになる仕様って誰得なの? >>840
考え方的には別配列として切り出すのでなくビューなんだってさ(copy on writeだけど)
String.CharacterView.IndexみたいにIntじゃないIndexも多いから
コレクション全般に対しての考え方として
Sequence的に扱ったり、startIndexやindex(after:)などのIndex用メソッドに慣れて行ったほうがいい viewならますます0から始まってほしいところだが Objective-c全く触ったことないんだけどSwiftの勉強はじめても問題ない? プログラミングはじめたばかりの初心者ですけど質問してもいいですか?
Swiftやってます 過疎って返ってくるのが遅そうなので勝手に質問します
var m:Int = 0
do {"index:" + String(m)} while 10 > m++
で得られる答えがサイトではindex:0~index9だと書いてあったのですが理解ができません。
私はmが9であったらindex9となって、while10>m++の条件は++がmの後につくので9で比較されるのでtrueになり繰り返しが続行されると考えました。
なのでもう一度処理が実行されてindex:10まで出るのではないでしょうか。
慣れてないのでトンチンカンなこと言ってるかもしれませんがよろしくお願いします。 >>848
貴方の言う通りですけど、
インクリメント演算子(++)は、Swift3から使えなくなったのでそういう書き方はできなくなりました。 >>848
>index:10まで
その理解で合ってる
それと
・printもreturnも無いので答えという意味では何も無い
・do-while文は廃止された
・「++」(インクリメント)構文は廃止された
そのサイトを読むのは止めて
Swift4または2017年9月19日以降に書かれたもので学習した方がいいよ >>850
do-while は廃止ではなく、repeat-while に変更になりました。 >>849
>>850
ええまじか…
では++nのところはn+=1とかにすればいいのでしょうか
サイトは別のサイト探そうと思います 入門書の索引で do while の所探してページ開いてみたら repeat while のページになっていた。w
変化が激しいと入門書書く側も大変だな。 >>854
多分思想がなくて振り回されてる。
もっと大御所がどっと構えて考え抜いた言語仕様にすればいいのに
goはそんな感じ Swiftで書きたいけど結局React Nativeになっちゃう オープンにしないでもっとクローズドで熟成させた方が良かったかもな xcodeがiPad proで動くようになってからが本番な気がする iPadのplaygroundsでもフレームワークインポートしていろいろなことできるので
コーディングする勉強にはもってこいですね。 さっさと公式にWebAssembly対応を謳うべき
出遅れる iOSしか対応してないから。
かつ、短期間の間に破壊的変更が多すぎる。
ちなみにもうxcodeでリファクタリングは出来るようになったんだろうな?
まだ出来てないなら流石にまずいぞ >>864
macOSとLinuxも
Linuxでのといったら、Kituraあたりぐらいかもだが。メジャーなとこがやってる。だがマイナーだけど >>862
goは対応間近。llvmに頼らずにコード生成出来るようになっている模様。 >>865
そっかーlinuxに対応してたね。macosもか。
linuxに対応してるならciはlinuxで動かせる? >>864
swiftのリファクタリングも9でしれっと出来るようになってたw >>867
ciってなんだっけ?
CLIのこと?コマンドは普通に当然あるね。swiftでインタラクティブ(?)なとか。というか、コマンドだけじゃないのかな。Kituraもおすすめ開発環境はXcodeでmacOSでだったような気がしないでもない コマンドインターフェースじゃね?
REPLのことを言ってる気もしないでもないが continuous integrationの略。
コマンドがどうの言ってる奴は分からないならまだしもでまかせを言うな >>871
なるほど、そんなんあったのか。知らんwどうも勉強になった
だが、それだとちょっと文的に変かな。知っててかな?
>>872
それっぽいんだけど、コマンドでええやーん、もしくは正しく(?)なCLIと。なら悩まないのにw REPL?また謎なw >>873
えーと... >>871 えーと... まあ、おつかれです >>872
ああ、REPLってそういうことか。REPLにciと表せられるナニかあるのかと思った
そのREPLななが swift(コマンド)でインタラクティブ(?) ね。まあわかってるだろうけど、いちおう >>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 ciをCLIと読み替えるドヤ顔バカがいる世の中の方がよほど広く感じるわw なんかよほど気に食わなかったことがあったらしいな。そんなとこに食いつくとは 知らなきゃ別に今知ればいいし知らないやつを馬鹿にしても生産的じゃ無いよね。
ちなみに答えが無いってことはciをやるには未だにmacがいるってこと?
react-nativeの方が便利だな。これはもう Swiftというか何らかの言語がというのとは関係なくね?
コンパイラ等の基本的な開発環境とは別のことだろう。やるとしたらEclipse周りな人々とか、その辺りのOSS界隈だろうな >>883
なんでMacがなきゃCIが出来ないと思ったの? バカじゃないの? CIはXcodeで知りそれしか知らないその方法だけだと思ってるだけとか コマンドwwインターフェースwwwだと思ってるくらいだからなwwwww なんか必死さが滲み出てるな
そんなこと言うのは、ciはxcodeでのciだけだと思ってたと言ってるようなもんだろう くやしいのうw
5chでよかったなww
リアルで恥かかずに済んでwwww ____
/ \ /\ キリッ
. / (ー) (ー)\ < ciやるにはMacが必要
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー’´ /
ノ \
/´ ヽ
| l \
ヽ -一””””~~``’ー–、 -一”””’ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ <だっておwww
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / //
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー’´ ヽ / /
| | l||l 从人 l||l l||l 从人 l||l バンバン
ヽ -一””””~~``’ー–、 -一”””’ー-、
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) いまどきMacじゃないやつは人じゃないというか
ただの犯罪者予備軍だしな。
サイバー犯罪で捕まって「いつも暗い部屋でパソコンカタカタやってて
いつかはこうなると思ってました」と証言される存在。 いまどきMac持ってるやつは人じゃないというか
ただの犯罪者予備軍だしな。
サイバー犯罪で捕まって「いつも暗い部屋でパソコンカタカタやってて
いつかはこうなると思ってました」と証言される存在。 プログラマなの?ホントに
Swiftやってるやつはこんなヤツらって思われるから止めてw Mac持っててMacメインじゃない俺を2重にディスるのはやめろ 汎用エディタにしては、だろ。
pythonならpycharmには敵わないし、
swiftならxcodeには敵わない。 初心者です
Armになったら、Switのコード大幅に変わるの? macのcpuがarmになったらって聞いてる?
全部uikitベースになったりしてな すでにARM/Intelと違うCPUで(ほぼ)同じなんだからな インラインアセンブラが使えるなら変わっていただろうな インラインアセンブラはC言語に組み込んだ反則技みたいなものなので他の言語は是非とも実現しないでおいて欲しい。 MacのCPUが全部ARMになるとまずかありえんし、アセンブラ使えんし、
そんなこと考えるだけ不毛 OSというかファイルシステムに仕掛けあってMac/iOSは
複数のバイナリ実行ファイルをパッケージの中の別ディレクトリで持てるからなぁ
PPC/intel時代とか32bit/64bitバイナリとか。 パッケージの中の別ディレクトリじゃないよ。ひとつの実行ファイルの中で。実行ファイルに限らずFrameworkなどなども。Mach-Oっつうて。より古いのもディレクトリで分けではないな インラインアセンブラはまれに触る事があった。Linuxからの移植位なのでレジスタ退避の違い位しか分からない。
当時はgcc拡張で書いてた記憶があるけど、今clangだとどう書くんだろう? Swiftでのc配列取り扱いについて教えてください。
CoreaudioにAudioChannelLayoutというStructがありますが
これはcの可変長配列AudioChannelDescriptionを含む定義になっています。
SwiftではStructは値型なのですが、Structが持つ配列が
(AudioChannelDescription)となっていて、単一値のtuppleとして
importされており、一つ目の値しかコピーされないのではないか、
可変長structとして扱えていないのではないかとかんがえました。
swiftにおけるc配列のstructはどの様に扱われているのでしょうか。
Data型なりNSData型なりでbacking storeを確保して扱うのが
安全でしょうか? 単一値って書き間違いかと思うが、内包する要素が単一型のTuple=ある型の可変配列でしょ。それでうまくCの可変StructをSwiftにマップ/ブリッジされていると思うけど
初期化/作成は、
init(mChannelLayoutTag: AudioChannelLayoutTag, mChannelBitmap: AudioChannelBitmap, mNumberChannelDescriptions: UInt32, mChannelDescriptions: (AudioChannelDescription))
で、作成可能のようだけど。Cだと自分で必要バイト数計算してのallocしてのをこの中でやってるでしょ。コピーもこれ使えかな 定義見たけど AudioChannelDescription[1] が自動変換された結果でしょ
タプルは普通に固定サイズ
allocするサイズが可変だからinitのタイミングじゃ遅い
NSData や UnsafeMutablePointer<UInt8>.allocate で確保することになるから
値型として扱いたいならラッパーを探すか書くかしないと駄目 やはりそうですよね。
仕方ないのでData型で置き換えて扱う様にします。
CoreAudioはこの手の可変長配列を含むStructがあって扱いが難しいです。 >>918
Dataでもいいけどメンバにアクセスするのが面倒になるかもよ
コピーの面倒を見てくれる代わりにアクセスがクロージャ経由になるから >>915
Swiftはwithout CなんだからC配列とかどうでもいいんじゃないの?
C配列使えるObjective-Cなら何も問題はなかったわけだ
それをわざわざSwiftとかいうわけわからん言語導入するからそういう話が出てくる
韓国が日本にやってるような絡み方すんなよもう Swiftは自分でC要素排除したんだから、もうCに頼るなCに絡むなまじで ちょっと高度な話すぎて困惑してる、もう一度わかりやすい展開で書き直して欲しいくらい >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 >>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では割とある 君たちを雇うならどれくらい払えば良いんだろう。
勉強になるわー SCNHittestの逆の事ってどうやったら出来ますかね……座標が画面のどこに出てるかを出したいんですけど
UnityのWorldToScreenPointと同じ動作です よく知らんけどprojectPointとunprojectPointで相互変換出来るんじゃね 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
S91U5 レス数が900を超えています。1000を超えると表示できなくなるよ。