Avatar
norio_nomura 5/30/2017 4:48 AM
配列を可変長引数に変換できる様にすると、それが困ると言う投稿を読みました。 https://devforums.apple.com/message/974316#974316 (edited)
4:51 AM
$ echo "func f(a:Int...){}"|swiftc -emit-sil -|swift-demangle sil_stage canonical import Builtin import Swift import SwiftShims // main sil @main : $@convention(c) (Int32, UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>) -> Int32 { bb0(%0 : $Int32, %1 : $UnsafeMutablePointer<Optional<UnsafeMutablePointer<Int8>>>): %2 = integer_literal $Builtin.Int32, 0 // user: %3 %3 = struct $Int32 (%2 : $Builtin.Int32) // user: %4 return %3 : $Int32 // id: %4 } // end sil function 'main' // f(a:) sil hidden @main.f(a: Swift.Int...) -> () : $@convention(thin) (@owned Array<Int>) -> () { // %0 // users: %2, %1 bb0(%0 : $Array<Int>): debug_value %0 : $Array<Int>, let, name "a", argno 1 // id: %1 release_value %0 : $Array<Int> // id: %2 %3 = tuple () // user: %4 return %3 : $() // id: %4 } // end sil function 'main.f(a: Swift.Int...) -> ()'
4:51 AM
内部的にはArrayらしい。