Go는 REPL을 제공합니까?


200

대화식 환경은 프로그래머에게 매우 도움이됩니다. 그러나 Go가 제공하지 않는 것 같습니다. 이해가 정확합니까?

답변:


164

아니요, Go는 REPL을 제공하지 않습니다.

그러나 이미 언급했듯이 Go Playground (이것은 새로운 URL입니다)는 매우 편리합니다. Go Authors는 또한 기능이 풍부한 편집기를 추가하는 것에 대해 생각하고 있습니다.

로컬로 무언가를 원한다면 hsandbox 설치를 고려하십시오 . 간단히 실행하면 hsandbox go터미널 화면이 (로 screen) 분할 되어 맨 위에 코드를 작성하고 모든 저장에서 맨 아래에 실행 출력을 볼 수 있습니다.

거기에 있었다 gotry(옵션 패키지 이름) 식을 평가하는 데 사용되는 표준 이동 명령들, 그리고 같이 실행할 수 gotry 1+2gotry fmt 'Println("hello")'쉘에서. 실제로 사용하는 사람이 많지 않아 더 이상 사용할 수 없습니다.

또한 REPL for Go를 빌드하기위한 써드 파티 프로젝트를 보았지만 이제는 igogo-repl 두 링크 만 찾을 수 있습니다 . 내가 모르는 것이 얼마나 잘 작동합니까?

저의 2 센트 : 컴파일 속도는 여기에 언급 된 도구를 만드는 데 도움이 되었기 때문에 Go를위한 REPL 작성이 가능하지만 같은 속도로 REPL이 덜 필요합니다. Goground에서 실행할 수없는 것을 테스트하고 싶을 때마다 간단한 .go파일을 열고 코딩을 시작하고 코드를 실행합니다. goGo 1 의 명령으로 하나의 명령 빌드 프로세스가 가능하고 쉬워지면 훨씬 쉬워 집니다.

업데이트 :go 매우 쉽게 파일을 빌드하는 데 사용할 수있는 Go added 명령 의 최신 주간 릴리스 : 파일 작성 prog.go및 실행go build prog.go && ./prog

업데이트 2 : Go 1을 사용하면 go 프로그램을 직접 실행할 수 있습니다.go run filename.go

업데이트 3 : gore흥미로운 새 프로젝트입니다.


TL; DR igo 기타 : Gore는 붙여 넣기 및 Ctrl-D가 필요하므로 매우 편리하지 않습니다. Reinteract for Go와 같은 것은 멋진 소스 일 것입니다.

4
"gore"라는 두 개의 REPL 프로젝트가있는 것 같습니다. github.com/motemen/gore
Bijan

1
하, 난 그냥 같은 것을 게시하려고했다. 나는 그냥 motemen/gore거기 에서 놀고 있었다 – 그것은 꽤 좋다.
Darragh Enright

github.com/motemen/gore gore는 매우 훌륭하고 사용하기 쉽습니다 .
Junv


8

또한라는 최근 (3 월 2013) 프로젝트가 고어 에서 스리 람 Srinivasan에 유용 할 수 있습니다 :

gore는 golang 코드에 대한 명령 줄 평가 기입니다. 루프가없는 REPL입니다.
go 놀이터를 대신하여 대화식으로 약간의 코드를 쉽게 시험해 볼 수 있습니다. gore는 가져 오기 및 패키지 선언 및 주요 기능 래퍼와 같은 보일러 플레이트 코드를 자동으로 제공 합니다.
또한 자체 컴퓨터에서 실행되므로 놀이터에서 안전한 샌드 박스 모드와 달리 보안상의 이유로 코드가 거부되지 않습니다.


7

Go Playground 를 사용해 보셨습니까 ?

Go Playground에 대하여

Go Playground는 golang.org 서버에서 실행되는 웹 서비스입니다. 서비스는 Go 프로그램을 수신하고, 샌드 박스 내에서 프로그램을 컴파일, 링크 및 실행 한 다음 출력을 리턴합니다.


4

Vim 사용자 인 경우 vim-go 플러그인 ( https://github.com/fatih/vim-go )은 현재 버퍼의 출력을 실행하고 인쇄하는 명령 (GoRun)을 제공합니다. 여전히 기본 Go 파일의 상용구 코드를 모두 포함해야하지만 여전히 로컬 환경에서 코드 스 니펫을 신속하게 테스트 할 수있는 편리한 방법을 제공합니다.

여기에 이미지 설명을 입력하십시오

HTH


어떻게 현재 버퍼 。my vim에서 GoRun 출력을 만들 수 있습니까? 쉘에 표시
vagabond

vim-go 끝까지! 그러나이 단계를 더 진행하려면 보일러 플레이트 코드를 제거하고 'package_test.go'를 분할 버퍼에 넣고 망치질을 계속하십시오 : GoTest & : GoCoverage. 내 2 센트 ...
rolandvarga

3

GoSpeccy의 프로젝트는 이동 언어의 제한된 부분 집합의 내장의 REPL을 포함한다. 구현은 goeval을 사용 하고 있습니다.


2

아니요, 그러나 다른 답변에서 언급했듯이 컴파일 속도를 활용할 수 있습니다.

REPL을 모방하기 위해 generate-compile-run 루프를 사용하는 rango 를 살펴보십시오 . 가져 오기 및 명령문으로 시작하여 대화식 세션을 시작할 수도 있습니다.


2

VSCode 디버거를 사용하여 운이 좋았지 만 디버그 콘솔에서 함수 호출을 호출 할 수없는 한 상당히 제한적입니다 . Debug : Function Calls not supported # 2225 .

기본적으로 launch.json파일 을 올바르게 구성한 후 중단 점을 설정하십시오 . 그런 다음 변수 사이드 바에서 왼쪽을 드릴 다운하고 디버그 콘솔에 변수 표현식을 입력 할 수 있습니다. VSCode에서 go 파일을 디버깅하여 디버거를 통해 내부 검사





0

Go 코드는 Go 확장 및 Code Runner 확장을 사용하여 Visual Studio Code에서 REPL과 같은 방식으로 실행될 수 있습니다. 아래 스크린 샷에서 마우스 커서로 표시된 실행 삼각형 ▶을 클릭하여 코드를 실행하고 결과를 Visual Studio 코드 하단의 출력 창에 표시하십시오.

Go Visual Studio Code로 프로그래밍 할 때 Visual Studio Code의 기능을 확장하기 위해 설치할 수있는 추가 Go 확장 프로그램을 제안합니다.

Visual Studio Code에서 실행

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.