เขียนโปรแกรมรับตัวเลข และนำมาบวกเพิ่ม 10 ภาษา Go (Golang) แต่รันแล้วไม่สำเร็จขึ้นข้อความว่า invalid operation: n + 10 (mismatched types string and untyped int) แบบนี้ต้องแก้ไขอย่างไร
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
fmt.Print("Please input number : ")
scanner.Scan()
n := scanner.Text()
n = n + 10
fmt.Println( n )
}
วิธีแก้ไข
กรณีรับค่าตัวแปรผ่าน bufio.NewScanner แนะนำให้แปลงค่าที่รับมาเป็นชนิดตัวเลขก่อนนำไปคำนวณทางคณิตศาสตร์ เช่น บวก, ลบ, คูณ หรือหาร โดยใช้คำสั่ง strconv.Atoi สามารถเขียนโปรแกรมได้ดังนี้
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
fmt.Print("Please input number : ")
scanner.Scan()
n, _ := strconv.Atoi( scanner.Text() )
n = n + 10
fmt.Println( n )
}
ผลลัพธ์
Please input number : 120
130