2012-12-19 2 views

답변

13

일반적으로 Go를 엄격하게 입력하면 일부 자세한 표현이 나타납니다. Verbose가 말더듬을 의미하지는 않습니다. 유형 변환은 유용한 일을하며 유용성을 명시 적으로 명시하는 것이 중요합니다.

단순화하는 속임수는 불필요한 유형 변환을 작성하지 말고 언어 정의와 같은 문서를 참조해야합니다.

특정 경우에 len()이 int를 반환하고 추가로 값> = 0이라는 것을 알아야합니다. 4가이 표현식에서 int 유형을 취하는 상수임을 알아야합니다. 정수 나누기가 정수 지수를 반환한다는 것을 알아야합니다.이 경우에는 음의 정수가 아니고 실제로 원하는 답이됩니다.

i := len(l)/4 

이 사례는 쉬운 사례입니다.

+0

네 답장을 보내 주셔서 감사합니다. 이것은 쉬운 예이지만'math.Max'와 같은 표현으로 짜증납니다. – GiantSquid

+0

"4는이 표현식에서 int 유형을 취할 상수임을 알아야합니다." 내가 궁금한데 어떻게 상수에 특정 유형이 없기 때문에 그것을 알 수 있습니까? – kristianp

2

Go는 정수 나누기와 정수 변환을 어떻게 처리할지는 모르지만 일반적으로 잘림을 통해 이루어집니다. 따라서, LEN (L)를 가정하면 INT

i:=len(l)/4 

그렇지 i:= int(len(l))/4 또는 i:=int(len(l)/4)는 제 빨리 제보다 다소 이론적 인으로 작동해야한다.

관련 문제