Swift part13 (412レス)
Swift part13 http://mevius.5ch.net/test/read.cgi/tech/1618211068/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん (ワッチョイ 0f2d-WqpA) [] 2021/04/12(月) 16:04:28.17 ID:UoC5n/T70 Swiftについて語りましょう ※前スレ https://mevius.5ch.net/test/read.cgi/tech/1540818496/ スレ立て時は1行目に「!extend::vvvvv」 VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured http://mevius.5ch.net/test/read.cgi/tech/1618211068/1
383: デフォルトの名無しさん (ワッチョイ c601-VkrP) [sage] 2025/05/24(土) 10:34:59.24 ID:iDI/w+P00 >>382 1. オーバーロード 2. ジェネリクス(T: Numeric) 3. プロトコル(Numeric) 4. Enum ChatGPTにでも聞けばコード含めて全部回答してくれるんじゃないか http://mevius.5ch.net/test/read.cgi/tech/1618211068/383
384: デフォルトの名無しさん (ワッチョイ 460e-Lof8) [] 2025/05/24(土) 12:47:55.54 ID:JkI4IB9+0 自己解決しました >>383 ここで聞いてるのであって、gptとかはだいたい周知してるのでアドバイスにもなりません わからないならレスしないでください http://mevius.5ch.net/test/read.cgi/tech/1618211068/384
385: デフォルトの名無しさん (ワッチョイ 06ea-Lof8) [] 2025/05/24(土) 13:26:00.72 ID:IMvqkj3f0 >>382 こんな感じでいいんじゃね? 知らんけど func test<T>(num: Any) -> T { switch (num) { case is Int: let ret: Int = num as! Int; return(ret * 2 as! T); case is Double: let ret: Double = num as! Double; return(ret * 2.0 as! T); default: return(type(of: num) as! T); }; }; http://mevius.5ch.net/test/read.cgi/tech/1618211068/385
386: デフォルトの名無しさん (ワッチョイ c601-VkrP) [sage] 2025/05/24(土) 14:29:35.35 ID:aVm4nxod0 >>384 おまえ、GPT使っててこれなのかw 救いようがないな http://mevius.5ch.net/test/read.cgi/tech/1618211068/386
387: デフォルトの名無しさん (ワッチョイ df15-Lof8) [] 2025/05/24(土) 16:56:21.96 ID:ISd6qXTY0 >>386 さすがにGPT連呼ウゼーわ 無脳ゴミ虫はロムってろ http://mevius.5ch.net/test/read.cgi/tech/1618211068/387
388: デフォルトの名無しさん (アウアウウー Sa2f-/ppz) [] 2025/05/24(土) 17:56:44.75 ID:6QA0+Pxwa もちつけ https://www.youtube.com/watch?v=VuUasiilq44 http://mevius.5ch.net/test/read.cgi/tech/1618211068/388
389: デフォルトの名無しさん (ワッチョイ 46c5-Lof8) [] 2025/05/24(土) 20:29:32.23 ID:JkI4IB9+0 >>385 マジ、ありがとう!パーフェクトです 早速つかわしてもらいます http://mevius.5ch.net/test/read.cgi/tech/1618211068/389
390: デフォルトの名無しさん (ワッチョイ 6701-wCTo) [sage] 2025/05/24(土) 21:35:38.50 ID:/vXms6Z50 おまえ、あのクソコードで自演バレてないと思ってたのかwww 救いようがないなw http://mevius.5ch.net/test/read.cgi/tech/1618211068/390
391: デフォルトの名無しさん (ワッチョイ e76d-Od/L) [sage] 2025/05/24(土) 22:39:28.60 ID:xQOrGKFD0 うわぁ自演久々にみたわ キッツーwww http://mevius.5ch.net/test/read.cgi/tech/1618211068/391
392: デフォルトの名無しさん (ワッチョイ 5f48-7h9Y) [] 2025/05/25(日) 03:03:44.36 ID:tp/e59CE0 自演とか言うてるオマエラ コーティングはどうした? 悔しーのーwww http://mevius.5ch.net/test/read.cgi/tech/1618211068/392
393: デフォルトの名無しさん (ワッチョイ 1b6d-XbnY) [sage] 2025/05/25(日) 06:51:03.20 ID:jqh7iVcP0 >>392 お前のハゲ頭に塗るツルピカコーティングのこと言ってんのか? http://mevius.5ch.net/test/read.cgi/tech/1618211068/393
394: デフォルトの名無しさん (ワッチョイ bb4f-7h9Y) [] 2025/05/26(月) 12:10:01.23 ID:E/O4cAvn0 なんか荒れててワロタ Gptが万能だと思ってる底辺って、結構いるんだな じゃあ、このスレは不要だから削除申請しといてあげたよW Gptに感謝W http://mevius.5ch.net/test/read.cgi/tech/1618211068/394
395: デフォルトの名無しさん (ワッチョイ 1b01-5KpO) [sage] 2025/05/26(月) 12:24:31.90 ID:mCNwP+3w0 こいつこれで自演バレてないと思ってるとかどういう頭してるんだよw マジで頭悪すぎだろwww http://mevius.5ch.net/test/read.cgi/tech/1618211068/395
396: デフォルトの名無しさん (ワッチョイ 5301-G4JC) [sage] 2025/06/10(火) 10:38:10.27 ID:J5CIMo790 test http://mevius.5ch.net/test/read.cgi/tech/1618211068/396
397: デフォルトの名無しさん (ワッチョイ fb08-G4JC) [] 2025/06/10(火) 10:51:04.60 ID:co9N3dhx0 func test_func(function: () -> Void) -> String { let test: String = "引数のfunction名" return(test) } func test_func1() -> Void { return() } func test_func2() -> Void { return() } print(test_func(function: test_func1())) //test_func1 出力 print(test_func(function: test_func2())) //test_func2 出力 -- 関数の引数に関数を指定した場合、引数の関数名を取得する方法ってありますか? http://mevius.5ch.ne
t/test/read.cgi/tech/1618211068/397
398: デフォルトの名無しさん (ワッチョイ eb01-v8wM) [sage] 2025/06/10(火) 14:52:10.11 ID:CdIKdoXB0 >>397 #functionでできる範囲内で工夫したら? @objc属性をつけられるならリフレクションでどうにかできると思うけど面倒くさい あとはマクロを使って#call_test_func(function: test_func1)を test_func(function: test_func1, name: “test_func1”)に展開するとかかな http://mevius.5ch.net/test/read.cgi/tech/1618211068/398
399: デフォルトの名無しさん (ワッチョイ fb08-G4JC) [] 2025/06/10(火) 21:15:44.74 ID:co9N3dhx0 private test_func_name: String! func test_func(function: () -> Void) -> String { function() let test: String = test_func_name return(test) } func test_func1() -> Void { test_func_name = #function return() } func test_func2() -> Void { test_func_name = #function return() } print(test_func(function: test_func1())) //test_func1 出力 print(test_func(function: test_func2())) //test_func2 出力 -- >>398
> test_func(function: test_func1, name: “test_func1”) これって、スペルミスしやすいですよね 上記の方が、まだマシな気はします 根本的に 関数の引数に関数を指定した場合、引数の関数名を取得 は不可ってことでしょうか http://mevius.5ch.net/test/read.cgi/tech/1618211068/399
400: デフォルトの名無しさん (ワッチョイ 13ee-7FqK) [sage] 2025/06/10(火) 21:35:35.99 ID:kcNgEpD90 https://stackoverflow.com/questions/52083874/swift-print-name-of-a-function-stored-in-a-variable これの回答? http://mevius.5ch.net/test/read.cgi/tech/1618211068/400
401: デフォルトの名無しさん (ワッチョイ fb08-G4JC) [] 2025/06/10(火) 22:03:32.75 ID:co9N3dhx0 >>400 いいえ 違います http://mevius.5ch.net/test/read.cgi/tech/1618211068/401
402: デフォルトの名無しさん (ワッチョイ 0bcd-JxoL) [sage] 2025/06/10(火) 22:15:58.52 ID: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. http://mevius.5ch.net/test/read.cgi/tech/1618211068/402
403: デフォルトの名無しさん (ワッチョイ fb08-G4JC) [] 2025/06/10(火) 22:48:21.96 ID:co9N3dhx0 >>402 ありがとう ディクショナリー化して逃げることにします http://mevius.5ch.net/test/read.cgi/tech/1618211068/403
404: デフォルトの名無しさん (ワッチョイ eb01-v8wM) [sage] 2025/06/10(火) 23:17:17.93 ID:HzGLhqs50 >>399 >これって、スペルミスしやすいですよね だからマクロ・・・・・ >>402 @objc属性つければ事情が変わる http://mevius.5ch.net/test/read.cgi/tech/1618211068/404
405: デフォルトの名無しさん (ワッチョイ fbc8-jSs6) [] 2025/06/11(水) 01:29:20.37 ID:Y6NiPAiA0 テスト http://mevius.5ch.net/test/read.cgi/tech/1618211068/405
406: デフォルトの名無しさん (ワッチョイ fb6a-G4JC) [] 2025/06/11(水) 08:54:28.08 ID:Y6NiPAiA0 >>404 マクロにしても... すいませんが、サンプルコーディングみせてもらえませんか お願いします http://mevius.5ch.net/test/read.cgi/tech/1618211068/406
407: デフォルトの名無しさん (ワッチョイ fbe8-G4JC) [] 2025/06/11(水) 23:22:15.31 ID:Y6NiPAiA0 関数の引数に関数を指定した場合、引数の関数名取得して適宜分岐処理したかっただけでしたが、実質無理っぽいですね いろいろと検索してたらObjectIdentifierなるものがあって、試したところ 引数の関数名は取得できないまでも、引数の関数の識別ができたので、解決しました http://mevius.5ch.net/test/read.cgi/tech/1618211068/407
408: デフォルトの名無しさん (ワッチョイ 0101-v8wM) [sage] 2025/06/11(水) 23:36:45.91 ID: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”)に展開できる http://mevius.5ch.net/test/read.cgi/tech/1618211068/408
409: デフォルトの名無しさん (ワッチョイ 0101-v8wM) [sage] 2025/06/11(水) 23:44:57.69 ID:xQ0zj3960 >>407 高階関数で受け取った関数を識別して分岐処理を書くのは一般的には筋が悪い実装だよ 理解した上であえてやってるならいいけどそうじゃないなら再考を勧める http://mevius.5ch.net/test/read.cgi/tech/1618211068/409
410: デフォルトの名無しさん (ワッチョイ fbe8-G4JC) [] 2025/06/12(木) 00:07:03.79 ID:gPSDSI/z0 >>408 test_func(function: test_func1, name: "test_func1”) の test_func1 と "test_func1" として実装するのが気に入らないのです >>409 そもそも引数に関数ってのが、好ましくないのは承知してます ただ、どうしても引数とした関数として処理した方が、プログラム上、高メリットとなるので実装してます 余談ながら@objc化して引数の関数名を取得は可能でしたが、Selectorとかなんやらでなんか面倒で... ObjectIdentifi
er使った方が、意外にスマートな分岐処理が実装できたので、ObjectIdentifierで処理します http://mevius.5ch.net/test/read.cgi/tech/1618211068/410
411: デフォルトの名無しさん (ワッチョイ 0101-v8wM) [sage] 2025/06/12(木) 01:05:32.00 ID:huei3sVu0 >>410 >そもそも引数に関数ってのが、好ましくないのは承知してます 関数を受け渡しするのは別に悪くない 使う状況によってはむしろ好ましいことも多い 悪いのは関数を受け渡しする形にしているにもかかわらず 受け取った側でどの関数が渡されたかを識別して分岐しようとすること @objcのは最初に書いてあるように一番面倒なやり方だからね リフレクションを使いまくるような用途じゃなければ割に合わない http://mevius.5ch.net/test/rea
d.cgi/tech/1618211068/411
412: デフォルトの名無しさん (ワッチョイ c170-PdR5) [sage] 2025/06/12(木) 12:08:03.22 ID:1TmeXXfD0 ありえん設計だな 何か根本的に勘違いしてるとしか考えられん http://mevius.5ch.net/test/read.cgi/tech/1618211068/412
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s