我目前正在学习 Go 语言。在不同的平台上尝试:Linux、Windows 当我在 Linux 上运行代码时它运行得很好,但是当我在 Windows 上尝试这个程序时它不起作用。
它只是简单的 cmd 计算器,允许简单的操作,如加数、乘法等。它不处理像字符这样的错误输入。这是我第一个采用 Go 语法的程序
什么不起作用:
解析整数
比较输入
代码:
package main
import (
"bufio"
"fmt"
"math"
"os"
"strconv"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var operation int
var firstNumber float64
var secondNumber float64
fmt.Println("Simple cmd calculator")
repeat := true
for repeat {
fmt.Println("Enter number 1: ")
firstNumber = getNumber(*reader)
fmt.Println("Enter number 2: ")
secondNumber = getNumber(*reader)
fmt.Println()
selectOperation(*reader, &operation)
fmt.Print("You result is: ")
switch operation {
case 1:
fmt.Println(add(firstNumber, secondNumber))
case 2:
fmt.Println(subtract(firstNumber, secondNumber))
case 3:
fmt.Println(multiply(firstNumber, secondNumber))
case 4:
fmt.Println(divide(firstNumber, secondNumber))
}
fmt.Println("Do you want to continue? [Y/n]")
input, _ := reader.ReadString('\n')
input = strings.Replace(input, "\n", "", -1)
if !(input == "Y" || input == "y") {
repeat = false
}
}
}
func selectOperation(reader bufio.Reader, operation *int) {
fmt.Println("1. Add")
fmt.Println("2. Subtract")
fmt.Println("3. Multiply")
fmt.Println("4. Divide")
fmt.Print("Select operation: ")
input, _ := reader.ReadString('\n')
input = strings.Replace(input, "\n", "", -1)
number, _ := strconv.Atoi(input)
*operation = number
}
结果:
我做错了什么还是不是我的错?
慕少森
相关分类