Devdit
 

assignment mismatch: 1 variable but strconv.Atoi returns 2 values Go คือ วิธีแก้ไข

1.3K

รันโค้ด Go (Golang) รับค่าจากผู้ใช้งานและแปลงเป็นตัวเลข แต่พอรันแล้วขึ้น assignment mismatch: 1 variable but strconv.Atoi returns 2 values ต้องแก้ไขอย่างไร

package main
import (
    "bufio"
    "fmt"
    "os"
	"strconv"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)

	fmt.Print("input number : ")
	scanner.Scan()
	number := strconv.Atoi( scanner.Text() )
	number *= 2
	fmt.Println( number )
}

 

วิธีแก้ไข

ปัญหานี้เกิดจากคำสั่ง strconv.Atoi (แปลง String เป็น Integer) จะคืนค่า (Return) มา 2 ค่า คือค่าที่แปลง และค่ากรณีเกิด error ให้แก้ไขตรงส่วนตัวแปร number := เป็น number, _ := ความหมายของตัวขีดล่าง (_) คือให้โค้ดดังกล่าวไม่สนใจ error (skip error) สามารถเขียนโปรแกรมได้ดังนี้

func main() {
	scanner := bufio.NewScanner(os.Stdin)

	fmt.Print("input number : ")
	scanner.Scan()
	number, _ := strconv.Atoi( scanner.Text() )
	number *= 2
	fmt.Println( number )
}
แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ