Не создавайте двоичный файл с помощью GoClipse

Установлен GoClipse v0.80 в Eclipse Luna на OS X Mavericks ...

Установите следующие значения в настройках Eclipse -> Go:

GOROOT: / usr / local / go GOPATH: / DevProjects / Go / GoHello (под ним находится папка src)

Я создал проект Go (вместе с новым файлом Go) и поместил следующий код в src / Hello.go:

package src

import "fmt"

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

Когда я запускаю Hello.go, внутри консоли Eclipse появляется следующее:

************  Running Go build for project: GoHello  ************
************  Build terminated.  ************

Как получается, что он не печатает Hello to stdout?


person PacificNW_Lover    schedule 30.06.2014    source источник
comment
Других выходов из сборки нет?   -  person Simon Whitehead    schedule 30.06.2014


Ответы (1)


Вам нужно package main:

package main

import "fmt"

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

Выход:

Hello

Спецификация языка программирования Go

Выполнение программы

Полная программа создается путем транзитивного связывания одного неимпортированного пакета, называемого пакетом main, со всеми импортируемыми им пакетами. Пакет main должен иметь имя пакета main и объявлять функцию main, которая не принимает аргументов и не возвращает значения.

func main() { … }

Выполнение программы начинается с инициализации пакета main и последующего вызова функции main. Когда этот вызов функции возвращается, программа завершается. Он не ждет завершения других (не main) горутин.

person peterSO    schedule 30.06.2014
comment
Вот это да. Очевидно, я сегодня слепой. +1. - person Simon Whitehead; 30.06.2014
comment
Спасибо! Да, я тоже слепой ... Теперь это работает ... Это мой фон Java, который заставил меня ввести src вместо main для объявления пакета. Спасибо вам обоим, peterSO и Simon! - person PacificNW_Lover; 30.06.2014