Devdit
 

invalid operation: n + 10 (mismatched types string and untyped int) Go คือ วิธีแก้ไข

867

เขียนโปรแกรมรับตัวเลข และนำมาบวกเพิ่ม 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
เขียน 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ