Devdit
 

assignment mismatch: 2 variables but scanner.Text returns 1 value Go คือ วิธีแก้ไข

808

รันโค้ดภาษา Go (Golang) รับค่าจากผู้ใช้งานแต่พอรันแล้วไม่สำเร็จขึ้นข้อความ Error ว่า assignment mismatch: 2 variables but scanner.Text returns 1 value แบบนี้ต้องแก้ไขอย่างไร

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

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

	fmt.Print("input : ")
	scanner.Scan()
	s, _ := scanner.Text()
	fmt.Println( s )
}

 

วิธีแก้ไข

ปัญหานี้เกิดจาก s, _ := เนื่องจากคำสั่ง scanner.Text จะส่งคืนค่า (return) แค่ค่าเดียว แต่ตอนประกาศตัวแปรมารับค่าประกาศ 2 ตัว คือ s กับ _ ซึ่งให้ลบในอักษร _ หรือ skip error ออก ดังนี้

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

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