2015-01-05 2 views
2

나는 골란에 초보자이며 단일byte 변수를 정의하는 방법을 찾고 싶습니다.go lang에서 단일 바이트 변수를 정의하는 방법

데모 프로그램 유효 이동 참조.

package main 

import (
    "fmt" 
) 

func unhex(c byte) byte{ 
    switch { 
    case '0' <= c && c <= '9': 
     return c - '0' 
    case 'a' <= c && c <= 'f': 
     return c - 'a' + 10 
    case 'A' <= c && c <= 'F': 
     return c - 'A' + 10 
    } 
    return 0 
} 

func main(){ 
    // It works fine here, as I wrap things with array. 
    c := []byte{'A'} 
    fmt.Println(unhex(c[0])) 

    //c := byte{'A'} **Error** invalid type for composite literal: byte 
    //fmt.Println(unhex(c)) 
} 

바이트로 배열을 래핑 할 수 있지만, 배열은 사용하지 않고 단일 바이트를 어떻게 정의 할 수 있습니까? 감사. 당신의 예에서

답변

6

이는 conversion syntax T(x) 사용하여 작동합니다 : T는 유형이고 xT 형에 변환 할 수있는 표현입니다

c := byte('A') 

변환 양식 T(x)의 표현이다.

this playground example을 참조하십시오.

cb := byte('A') 
fmt.Println(unhex(cb)) 

출력 : 당신이 := 구문을 사용하지 않으려면

10 
+0

감사합니다. 작동합니다. – armnotstrong

+0

@armnotstrong 나는 왜 * 작동하는지 설명 할 답변을 편집했습니다. – VonC

+0

C 또는 java 형식의 캐스트와 비슷하지만'(byte) 'A' '로 쓰는 대신'byte ('A ')'로 쓰고, 맞습니까? – armnotstrong

1

, 당신은 아직도 당신이 명시 적으로 유형을 지정할 수있는 var 문을 사용할 수 있습니다. 예 :

var c byte = 'A' 
관련 문제