茶漬けの技術メモ

Golang, Rubyで趣味開発します。テックニュース書いたり。ガジェット触ったり。

Swift error: argument labels '(_:)' do not match any available overloads が出た時の対処法

error: argument labels '(_:)' do not match any available overloads が出た時に少し迷ったので、その対処法を書いておきます。

struct Cube {
    var area: Int
    
    init(height: Int ) {
        area = height * height
    }
    
    init(half height: Int){
        area = height * height / 2
    }
}

let cube = Cube(10)  // Argument labels '(_:)' do not match any available overloads

このエラーはイニシャライザが2つあり、どちらを呼び出したいのかわからないためエラーとなっています。

そのため、引数名もしくはラベル名を指定すればエラーは消えます。

struct Cube {
    var area: Int
    
    init(height: Int ) {
        area = height * height
    }
    
    init(half height: Int){
        area = height * height / 2
    }
}

let cube = Cube(height: 10)
let halfCube = Cube(half: 10)
print(cube.area)  // 100
print(halfCube.area)  // 50


同じエラーがあったのでこちらも参考にどうぞ
swift3 - swift 3 error : Argument labels '(_:)' do not match any available overloads - Stack Overflow


おまけ

こちらもどうぞ

o-tyazuke.hatenablog.com


このブログのTwitterアカウントを作成しました!!
フォロー待ってます!!
twitter.com