รันโค้ดภาษา 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 )
}