英文:
Why am I seeing this error "./main.go:7:6: syntax error: unexpected mars, expecting ("?
问题
这是我的程序。我正在尝试将一个人的年龄转换为火星上的年龄。看起来一切都没问题,但我仍然遇到了这个错误。
package main
import "fmt"
func main() {
    var age int
    fmt.Scanln(&age)
    
    func mars(age int) int {
        days := age * 365
        return days / 687
    }
    
    mars_age := mars(age)
    fmt.Println(mars_age)
}
这是你的程序的中文翻译。
英文:
Here is my program. I am trying to convert a person's age on mars. It looks everything is fine here but still I am getting this error
package main
import "fmt"
func main() {
var age int
fmt.Scanln(&age)
func mars(age) int{
days := age*365
return days/687
}
mars_age := mars(age)
fmt.Println(mars_age)
}
答案1
得分: 1
尝试:
package main
import "fmt"
func mars(age int) int {
	days := age * 365
	return days / 687
}
func main() {
	var age int
	fmt.Scanln(&age)
	mars_age := mars(age)
	fmt.Println(mars_age)
}
- 命名的 
func必须在同一级别(例如main、mars) - 函数参数必须有类型 
age int 
注意 Go 也允许匿名函数(也称为 lambda)。在这种情况下,你可以在
main中定义mars,并将其赋值给一个变量,例如mars := func(age int) int { ... }
英文:
Try:
package main
import "fmt"
func mars(age int) int {
	days := age * 365
	return days / 687
}
func main() {
	var age int
	fmt.Scanln(&age)
	mars_age := mars(age)
	fmt.Println(mars_age)
}
- Named 
func's must be at the same level (i e.main,mars) - Function parameters must have types 
age int 
> NOTE Go permits anonymous functions (aka lambdas) too. In that case, you could define mars in main and you could assign it to a variable e.g. mars := func(age int) int { ... }
答案2
得分: 0
请参考这篇帖子,了解如何使用嵌套函数:https://stackoverflow.com/a/42423998/2693654
你需要像这样编写代码:
package main
import "fmt"
func main() {
    var age int
    fmt.Scanln(&age)
    x := func(age int) int {
        days := age * 365
        return days / 687
    }
    mars_age := x(age)
    fmt.Println(mars_age)
}
英文:
Please see this post on how to use nested functions https://stackoverflow.com/a/42423998/2693654
You need to have something like:
package main
import "fmt"
func main() {
	var age int
	fmt.Scanln(&age)
	x:= func (age int) int {
		days := age*365
		return days/687
	}
	mars_age := x(age)
	fmt.Println(mars_age)
}
答案3
得分: 0
func main() {
mars := func (参数类型) 返回类型 {
返回 ......
}
返回值 := mars(贝拉 贝拉 贝拉)
}
英文:
func main() {
   mars := func (param type) return_type {
       return .....
   }
   returnedValue := mars(bela bela bela)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论