4
은 "값"이 아닙니다. 그것은 문자 그대로입니다. 그러나 스위프트가 좋아하지만 해석 할 수 있습니다. "개종 할 것"이 없습니다. 그것은 에 값을 작성하는 데 사용되지만, 요청한 값이기 때문에 작성된 값은 Float가됩니다.
하지만 지금이 시도 :
let i : Int = 4
let mynum: Float = i
을 Ooooops.
그것을 다른 방법을 넣으려면 :
let mynum: Float = 4
이
let mynum = Float(4) // we are _creating_ the value
으로 해석되지만 우리는 i
, 로 시작하는 경우 값을 만들 수 있습니다
let i : Int = 4
let mynum: Float = Float(i)
을
스위프트가 당신을 위해 그것을하지 않습니다.
보너스 LESSON 내 맥주를 잡고 이를 볼 :
struct Dog : IntegerLiteralConvertible {
var number : Int?
init(integerLiteral: Int) {
self.number = integerLiteral
}
}
let dog : Dog = 42
플로트 일종의, 그런 식으로 작동합니다.
표현식을 계산할 때 [ "CGFloat는 Int로 변환 할 수 없습니다"라는 가능한 복제본] (http://stackoverflow.com/questions/27461801/cgfloat-is-not-convertible-to-int-when-trying -to-calculate-an-expression) – matt
@matt 다른 질문 –
전혀 아니며 내 대답을 참조하십시오 : http://stackoverflow.com/a/27461821/341994 질문에 대답하지 않는다고 생각하면 생각해보십시오. 좀 더. – matt