首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的golang程序不运行

简单的golang程序不运行
EN

Stack Overflow用户
提问于 2013-10-18 01:52:34
回答 2查看 14.5K关注 0票数 4

下面是一个简单的golang脚本T1.go:

代码语言:javascript
复制
package main

import "fmt"

func main() {
    fmt.Println("Hello world")
}

使用go run T1.go运行它,我得到:

代码语言:javascript
复制
T1.go:1:15: expected ';', found 'import'

如果我将;添加到行尾,程序就可以运行:

代码语言:javascript
复制
package main;

import "fmt";

func main() {
    fmt.Println("Hello world")
}

但是,线的分号不是多余的吗?

PS:我在64位窗口7,高亮版本是devel +f4d1cb8d9a911.2rc1。错误代码在http://play.golang.org/上运行得很好

更新了我使用dos2unix将源代码转换成unix行的结尾,但是它没有改变任何东西

Notes My安装在C:\go目录中,C:\go\bin被添加到%PATH%环境变量中;源代码T1.go放在C:\t\go目录中,这与go安装目录不同。不确定此配置是否导致了此问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-18 08:28:57

十六进制转储显示,您正在使用的是承载返回字符(U+000D),而不是T1.go文件中的LineFeeds (U+000A)。只使用CR作为终端机是一种老的Mac方式。

specification声明一个新行是一个单行提要字符。因为找不到这一点,所以解析器假设它都写在同一行上。在这种情况下,编译器要求您实际键入分号.

溶液

将您的CR更改为LF,它应该可以工作。

如果使用Notepad++,则可以使用Edit - EOL转换- Unix/OSX格式进行此转换。

go fmt不将CR转换为LF,而将CRLF转换为LF。

dos2unix也是如此。在您的例子中,它应该与mac2unix一起工作。

票数 8
EN

Stack Overflow用户

发布于 2013-10-18 06:16:11

听起来像是1.2rc1版本中的一个bug。试试1.2rc2,看看问题是否还存在。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19440301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档