Swift part13

401デフォルトの名無しさん (ワッチョイ fb08-G4JC)
垢版 |
2025/06/10(火) 22:03:32.75ID:co9N3dhx0
>>400
いいえ 違います
2025/06/10(火) 22:15:58.52ID:povNpgQm0
>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デフォルトの名無しさん (ワッチョイ fb08-G4JC)
垢版 |
2025/06/10(火) 22:48:21.96ID:co9N3dhx0
>>402
ありがとう
ディクショナリー化して逃げることにします
2025/06/10(火) 23:17:17.93ID:HzGLhqs50
>>399
>これって、スペルミスしやすいですよね
だからマクロ・・・・・

>>402
@objc属性つければ事情が変わる
405デフォルトの名無しさん (ワッチョイ fbc8-jSs6)
垢版 |
2025/06/11(水) 01:29:20.37ID:Y6NiPAiA0
テスト
406デフォルトの名無しさん (ワッチョイ fb6a-G4JC)
垢版 |
2025/06/11(水) 08:54:28.08ID:Y6NiPAiA0
>>404
マクロにしても...

すいませんが、サンプルコーディングみせてもらえませんか
お願いします
407デフォルトの名無しさん (ワッチョイ fbe8-G4JC)
垢版 |
2025/06/11(水) 23:22:15.31ID:Y6NiPAiA0
関数の引数に関数を指定した場合、引数の関数名取得して適宜分岐処理したかっただけでしたが、実質無理っぽいですね
いろいろと検索してたらObjectIdentifierなるものがあって、試したところ
引数の関数名は取得できないまでも、引数の関数の識別ができたので、解決しました
2025/06/11(水) 23:36:45.91ID:xQ0zj3960
>>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”)に展開できる
2025/06/11(水) 23:44:57.69ID:xQ0zj3960
>>407
高階関数で受け取った関数を識別して分岐処理を書くのは一般的には筋が悪い実装だよ
理解した上であえてやってるならいいけどそうじゃないなら再考を勧める
410デフォルトの名無しさん (ワッチョイ fbe8-G4JC)
垢版 |
2025/06/12(木) 00:07:03.79ID:gPSDSI/z0
>>408
test_func(function: test_func1, name: "test_func1”)

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

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

余談ながら@objc化して引数の関数名を取得は可能でしたが、Selectorとかなんやらでなんか面倒で...
ObjectIdentifier使った方が、意外にスマートな分岐処理が実装できたので、ObjectIdentifierで処理します
2025/06/12(木) 01:05:32.00ID:huei3sVu0
>>410
>そもそも引数に関数ってのが、好ましくないのは承知してます
関数を受け渡しするのは別に悪くない
使う状況によってはむしろ好ましいことも多い
悪いのは関数を受け渡しする形にしているにもかかわらず
受け取った側でどの関数が渡されたかを識別して分岐しようとすること

@objcのは最初に書いてあるように一番面倒なやり方だからね
リフレクションを使いまくるような用途じゃなければ割に合わない
2025/06/12(木) 12:08:03.22ID:1TmeXXfD0
ありえん設計だな
何か根本的に勘違いしてるとしか考えられん
413デフォルトの名無しさん (ワッチョイ 199c-nbgv)
垢版 |
2025/10/27(月) 13:46:24.84ID:94yXD1ih0
Apple発のプログラミング言語「Swift」でAndroidアプリの開発が可能に
https://gigazine.net/news/20251027-swift-sdk-for-android/
2025/10/29(水) 08:44:36.17ID:/33m2d4b0
なんかもう言語とかフレームワークとかなんでも良くなってきてる感
どうせAIが書くし
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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