2016-07-27 4 views
0

Мне нужно спрятать пароль. Я получаю (несоответствующие типы []byte и int). Как я могу это исправить? Как я могу конвертировать из int в []byte?Как преобразовать тип в golang?

package main 

import ("fmt"; "github.com/howeyc/gopass") 

func main() { 
    var user string 
    maping := map[string]int{"dasha": 123, "mike": 777} 

    fmt.Println("Enter username: ") 
    fmt.Scan(&user) 
    fmt.Printf("Enter password: ") 
    pass, err := gopass.GetPasswd() 
    if err != nil { 
     return 
    } 
    if pass == maping[user] { 
     fmt.Println("bingo") 
    }else{ 
     fmt.Println("the login or password is not correct") 
    } 
} 

ответ

2

Вы можете сделать преобразование с strconv «s Atoi() функции:

i, err := strconv.Atoi("-42") 

И вы бы превратить ваш []byte в string с

s := string(byteArray[:]) 

Так комбинация

i, err := strconv.Atoi(string(pass[:])) 
+3

Обратите внимание, что Golang позволяет вам преобразовать [] байт в строку (или наоборот), просто делая явный тип, потому что базовый тип строки фактически * является * a [] байтом. Но, как вы могли заметить, это не относится к строкам и типам int. Для этого требуется нечто большее, чем просто тип (функция). –

Смежные вопросы