Swift part13at TECH
Swift part13 - 暇つぶし2ch401:デフォルトの名無しさん
25/06/10 22:03:32.75 co9N3dhx0.net
>>400
いいえ 違います

402:デフォルトの名無しさん
25/06/10 22:15:58.52 povNpgQm0.net
>Swift is a statically dispatched programming language.
>This results in Swift using memory addresses as much as possible when it needs to call a function.
>The side effect is the inability to capture the called function name, since in most of the cases it will be a simple memory address.

403:デフォルトの名無しさん
25/06/10 22:48:21.96 co9N3dhx0.net
>>402
ありがとう
ディクショナリー化して逃げることにします

404:デフォルトの名無しさん
25/06/10 23:17:17.93 HzGLhqs50.net
>>399
>これって、スペルミスしやすいですよね
だからマクロ・・・・・

>>402
@objc属性つければ事情が変わる

405:デフォルトの名無しさん
25/06/11 01:29:20.37 Y6NiPAiA0.net
テスト

406:デフォルトの名無しさん
25/06/11 08:54:28.08 Y6NiPAiA0.net
>>404
マクロにしても...

すいませんが、サンプルコーディングみせてもらえませんか
お願いします

407:デフォルトの名無しさん
25/06/11 23:22:15.31 Y6NiPAiA0.net
関数の引数に関数を指定した場合、引数の関数名取得して適宜分岐処理したかっただけでしたが、実質無理っぽいですね
いろいろと検索してたらObjectIdentifierなるものがあって、試したところ
引数の関数名は取得できないまでも、引数の関数の識別ができたので、解決しました

408:デフォルトの名無しさん
25/06/11 23:36:45.91 xQ0zj3960.net
>>406
主なところだけ書くけど
let firstArg = node.arguments.first!
let expr = firstArg.expression.trimmedDescription
return "test_func(function: \(expr), name: \"\(expr)\")"
みたいなので
#call_test_func(function: test_func1)みたいな呼び出しを
test_func(function: test_func1, name: "test_func1”)に展開できる

409:デフォルトの名無しさん
25/06/11 23:44:57.69 xQ0zj3960.net
>>407
高階関数で受け取った関数を識別して分岐処理を書くのは一般的には筋が悪い実装だよ
理解した上であえてやってるならいいけどそうじゃないなら再考を勧める

410:デフォルトの名無しさん
25/06/12 00:07:03.79 gPSDSI/z0.net
>>408
test_func(function: test_func1, name: "test_func1”)

test_func1 と "test_func1" として実装するのが気に入らないのです

>>409
そもそも引数に関数ってのが、好ましくないのは承知してます
ただ、どうしても引数とした関数として処理した方が、プログラム上、高メリットとなるので実装してます

余談ながら@objc化して引数の関数名を取得は可能でしたが、Selectorとかなんやらでなんか面倒で...
ObjectIdentifier使った方が、意外にスマートな分岐処理が実装できたので、ObjectIdentifierで処理します

411:デフォルトの名無しさん
25/06/12 01:05:32.00 huei3sVu0.net
>>410
>そもそも引数に関数ってのが、好ましくないのは承知してます
関数を受け渡しするのは別に悪くない
使う状況によってはむしろ好ましいことも多い
悪いのは関数を受け渡しする形にしているにもかかわらず
受け取った側でどの関数が渡されたかを識別して分岐しようとすること

@objcのは最初に書いてあるように一番面倒なやり方だからね
リフレクションを使いまくるような用途じゃなければ割に合わない

412:デフォルトの名無しさん
25/06/12 12:08:03.22 1TmeXXfD0.net
ありえん設計だな
何か根本的に勘違いしてるとしか考えられん

413:デフォルトの名無しさん
25/10/27 13:46:24.84 94yXD1ih0.net
Apple発のプログラミング言語「Swift」でAndroidアプリの開発が可能に
URLリンク(gigazine.net)

414:デフォルトの名無しさん
25/10/29 08:44:36.17 /33m2d4b0.net
なんかもう言語とかフレームワークとかなんでも良くなってきてる感
どうせAIが書くし

415:デフォルトの名無しさん
26/03/19 09:43:38.24 se+YN8ME0.net
hosyu

416:デフォルトの名無しさん
26/03/25 11:30:28.59 RiEvUjyB0.net
26.4出たな

417:デフォルトの名無しさん
26/07/08 15:44:53.12 FvOuLedp0.net
Apple、次期macOS 27でSwift言語をシステムカーネル開発に採用。メモリ安全な言語として
URLリンク(www.publickey1.jp)

418:デフォルトの名無しさん
26/07/08 15:56:45.78 bLHngtm20.net
マジか
仕事増えるかな

419:デフォルトの名無しさん
26/07/18 20:50:16.79 v2/L0jLa0.net
ARCっていいよな

420:デフォルトの名無しさん
26/07/19 00:20:19.67 5M8m5fOyH.net
GCよりいいけど広まらないARC

421:デフォルトの名無しさん
26/07/24 05:12:07.31 EEfjSGuoH.net
ARC使える奴はRAIIでも耐えられるしARC使えないアホはGCしか選択肢ないからしゃーない


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch