Ещё недостаток «Гоу»
В отличие от многих языков, в «Гоу» символ решётки не позволяет комментировать строку. В упомянутых языках это сделано не зря. В различных ЮНИКС-подобных системах, если запускаемый файл начинается с последовательности «#!», то считается, что дальше идёт путь до интерпретатора, который умеет обрабатывать запускаемый файл. Таким образом работают, например, все шелл-скрипты.
Сам же язык, встретив первой строкой «#!/bin/какой-то путь» просто посчитает это комментарием. Так поступает Пайтон, ПХП, Перл и ещё целая куча языков. Это удобно.
В «Гоу» такого нет. Несмотря, что в первой версии появилась команда «go run», позволяющая запускать программы из командной строки, не компилируя их (на самом деле компилируя, но результат не сохраняется), я не могу указать в первой строке «#!/usr/local/bin/go run», «Гоу» меня отругает:
bolk@dhcp-174 ~ $ ./main.go
package :
main.go:1:1: illegal character U+0023 '#'
Прискорбно.
Создай свой скрипт ~/bin/go_run.sh
В go указывай его, в самом скрипте напиши так:
Комментарий для hshhhhh.name:
Да это какая-то адская жесть, а не решение :)
В PHP ситуация совсем иная: директива должна находиться не внутри кода, а перед ним, с точки зрения синтаксиса PHP это текст, который будет выведен в STDIN. CLI-интерпретатор этот случай обрабатывает исключительно.
Комментарий для besisland.name:
Ну, интерпретатор для командной строки есть, уже хорошо (я, правда, никогда утилиты командной строки не пробовал пускать в веб-сервере).
В Lua ’#’ не комментирует, но:
«Lua может использоваться в качестве интерпретатора скриптов в системах Unix, если учесть то, что интерпретатор пропускает первую строку скрипта если она начинается с #. Таким образом, скрипты Lua могут быть превращены в исполняемые программы вызовом chmod +x и добавлением #! в начало файла, как показано в следующем примере:»
Комментарий для guest:
Ну, тоже решение.