为什么不能在Go的for循环中使用'var'?

时间:2019-08-28 06:23:14

标签: go

我是Go的新手,有一个问题。

据我所知,以下两个片段基本相同。

var

但是为什么for var i = 0; i < 10; i++ { //do something } 语句不能在for循环中使用?

syntax error: var declaration not allowed in for initializergo

会有一个class Header extends Component { constructor(props) { super(props) this.state = { title: 'React App', keywords: 'Type Above' } } inputData = (event) => { console.log(event.target.value) this.setState({ keywords: event.target.value ? event.target.value : 'Type Above' }) } handleSubmit = (event) => { event.preventDefault(); alert('Button Clicked'); this.setState({ keywords: "" }); } render() { return ( <div> <h2>{this.state.title}</h2> <form onSubmit ={this.handleSubmit}> <center> <input type="text" placeholder="Search Value..." onChange ={this.inputData} /> <h3>{this.state.keywords}</h3> </center> <button> BUtton </button> </form> </div> ) } }

为什么要这样设计?有什么想法吗?

如果有人能告诉我,我将不胜感激。

1 个答案:

答案 0 :(得分:3)

this form of the for clause中的初始化语句不能是任何类型的语句,而必须是"simple statement"(这种情况的一种情况是您看到的"short variable declaration")。

由于这个原因,就像Go语言中的许多其他选择一样:为了使您的代码具有可读性并使其看起来与其他开发人员的Go代码类似:如果您可以在此处输入任何类型的语句,则for循环并不总是很容易识别的(除了循环初始化外,还会混合一些顾虑)。