Ещё недостаток «Гоу»

В отличие от многих языков, в «Гоу» символ решётки не позволяет комментировать строку. В упомянутых языках это сделано не зря. В различных ЮНИКС-подобных системах, если запускаемый файл начинается с последовательности «#!», то считается, что дальше идёт путь до интерпретатора, который умеет обрабатывать запускаемый файл. Таким образом работают, например, все шелл-скрипты.

Сам же язык, встретив первой строкой «#!/bin/какой-то путь» просто посчитает это комментарием. Так поступает Пайтон, ПХП, Перл и ещё целая куча языков. Это удобно.

В «Гоу» такого нет. Несмотря, что в первой версии появилась команда «go run», позволяющая запускать программы из командной строки, не компилируя их (на самом деле компилируя, но результат не сохраняется), я не могу указать в первой строке «#!/usr/local/bin/go run», «Гоу» меня отругает:
bolk@dhcp-174 ~ $ ./main.go 
package : 
main.go:1:1: illegal character U+0023 '#'
Прискорбно.
23 апреля 2012 10:19

hshhhhh (hshhhhh.name)
23 апреля 2012, 13:11

Создай свой скрипт ~/bin/go_run.sh
В go указывай его, в самом скрипте напиши так:
tail -n +2 $1 | go run

bolk (bolknote.ru)
23 апреля 2012, 13:17, ответ предназначен hshhhhh (hshhhhh.name):

Да это какая-то адская жесть, а не решение :)

Денис Попов (besisland.name)
23 апреля 2012, 14:18

В PHP ситуация совсем иная: директива должна находиться не внутри кода, а перед ним, с точки зрения синтаксиса PHP это текст, который будет выведен в STDIN. CLI-интерпретатор этот случай обрабатывает исключительно.

bolk (bolknote.ru)
23 апреля 2012, 15:11, ответ предназначен Денис Попов (besisland.name):

Ну, интерпретатор для командной строки есть, уже хорошо (я, правда, никогда утилиты командной строки не пробовал пускать в веб-сервере).

guest (инкогнито)
23 апреля 2012, 19:13

В Lua '#' не комментирует, но:
"Lua может использоваться в качестве интерпретатора скриптов в системах Unix, если учесть то, что интерпретатор пропускает первую строку скрипта если она начинается с #. Таким образом, скрипты Lua могут быть превращены в исполняемые программы вызовом chmod +x и добавлением #! в начало файла, как показано в следующем примере:"

bolk (bolknote.ru)
23 апреля 2012, 20:09, ответ предназначен guest

Ну, тоже решение.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)