139 строки
5.1 KiB
Cheetah
139 строки
5.1 KiB
Cheetah
{{define "layout"}}
|
|
|
|
{{$canShare := not googleCN}}
|
|
|
|
<div class="PlayPage">
|
|
<div class="Playground-controls">
|
|
<h1 class="Playground-title">The Go Playground</h1>
|
|
<div class="Playground-buttons">
|
|
{{if .playVersions -}}
|
|
<select class="Playground-selectGoVersion js-playgroundVersionEl" aria-label="Go version">
|
|
{{range .playVersions -}}
|
|
<option value="{{.Backend}}">{{.Name}}</option>
|
|
{{end -}}
|
|
</select>
|
|
{{end -}}
|
|
<button id="run" class="Button Button--primary js-playgroundRunEl Playground-runButton" title="Run this code [shift-enter]">Run</button>
|
|
<div class="Playground-secondaryButtons">
|
|
<button id="fmt" class="Button js-playgroundFmtEl Playground-button" title="Format this code">Format</button>
|
|
{{- if $canShare}}
|
|
<button id="share" class="Button js-playgroundShareEl Playground-button" title="Share this code">Share</button>
|
|
{{- end}}
|
|
</div>
|
|
<input type="text" class="Playground-shareURL js-playgroundShareURLEl" title="Sharing URL" style="display: none;"></input>
|
|
<select class="Playground-selectExample js-playgroundToysEl" aria-label="Code examples">
|
|
<option value="hello.go">Hello, World!</option>
|
|
<option value="life.go">Conway's Game of Life</option>
|
|
<option value="fib.go">Fibonacci Closure</option>
|
|
<option value="peano.go">Peano Integers</option>
|
|
<option value="pi.go">Concurrent pi</option>
|
|
<option value="sieve.go">Concurrent Prime Sieve</option>
|
|
<option value="solitaire.go">Peg Solitaire Solver</option>
|
|
<option value="tree.go">Tree Comparison</option>
|
|
<option value="clear.go">Clear Screen</option>
|
|
<option value="http.go">HTTP Server</option>
|
|
<option value="image.go">Display Image</option>
|
|
<option value="multi.txt">Multiple Files</option>
|
|
<option value="sleep.go">Sleep</option>
|
|
<option value="test.go">Test Function</option>
|
|
<option value="index-dev.txt">Generic index</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="Playground-inputContainer">
|
|
<div class="Playground-preContainer" id="editor-description">
|
|
Press Esc to move out of the editor.
|
|
</div>
|
|
<div id="wrap">
|
|
<textarea id="code" name="code" class="Playground-input js-playgroundCodeEl" autocorrect="off" autocomplete="off" autocapitalize="off" spellcheck="false" aria-label="Try Go" aria-describedby="editor-description">{{if strings.Contains .URL "/play/p/"}}Loading share...
|
|
{{else}}
|
|
// You can edit this code!
|
|
// Click here and start typing.
|
|
package main
|
|
|
|
import "fmt"
|
|
|
|
func main() {
|
|
fmt.Println("Hello, 世界")
|
|
}{{end}}</textarea>
|
|
</div>
|
|
</div>
|
|
<div class="Playground-outputContainer js-playgroundOutputEl">
|
|
<pre class="Playground-output"><noscript>Hello, 世界</noscript></pre>
|
|
</div>
|
|
|
|
<div class="PlayAbout">
|
|
<p><b>About the Playground</b></p>
|
|
|
|
<p>
|
|
The Go Playground is a web service that runs on
|
|
<a href="/">go.dev</a>'s servers.
|
|
The service receives a Go program, <a href="/cmd/vet/">vets</a>, compiles, links, and
|
|
runs the program inside a sandbox, then returns the output.
|
|
</p>
|
|
|
|
<p>
|
|
If the program contains <a href="/pkg/testing">tests or examples</a>
|
|
and no main function, the service runs the tests.
|
|
Benchmarks will likely not be supported since the program runs in a sandboxed
|
|
environment with limited resources.
|
|
</p>
|
|
|
|
<p>
|
|
There are limitations to the programs that can be run in the playground:
|
|
</p>
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
The playground can use most of the standard library, with some exceptions.
|
|
The only communication a playground program has to the outside world
|
|
is by writing to standard output and standard error.
|
|
</li>
|
|
|
|
<li>
|
|
In the playground the time begins at 2009-11-10 23:00:00 UTC
|
|
(determining the significance of this date is an exercise for the reader).
|
|
This makes it easier to cache programs by giving them deterministic output.
|
|
</li>
|
|
|
|
<li>
|
|
There are also limits on execution time and on CPU and memory usage.
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<p>
|
|
The article "<a href="/blog/playground" target="_blank" rel="noopener">Inside
|
|
the Go Playground</a>" describes how the playground is implemented.
|
|
The source code is available at <a href="https://go.googlesource.com/playground" target="_blank" rel="noopener">https://go.googlesource.com/playground</a>.
|
|
</p>
|
|
|
|
<p>
|
|
The playground uses the <a href="/play/p/Ztyu2FJaajl">latest stable release of Go</a>.
|
|
</p>
|
|
|
|
<p>
|
|
The playground service is used by more than just the official Go project
|
|
(<a href="https://gobyexample.com/">Go by Example</a> is one other instance)
|
|
and we are happy for you to use it on your own site.
|
|
All we ask is that you
|
|
<a href="mailto:golang-dev@googlegroups.com">contact us first (note this is a public mailing list)</a>,
|
|
that you use a unique user agent in your requests (so we can identify you),
|
|
and that your service is of benefit to the Go community.
|
|
</p>
|
|
|
|
<p>
|
|
Any requests for content removal should be directed to
|
|
<a href="mailto:security@golang.org">security@golang.org</a>.
|
|
Please include the URL and the reason for the request.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-11222381-7"></script>
|
|
<script src="/js/jquery-linedtextarea.js" defer></script>
|
|
<script src="/js/playsite.js" defer></script>
|
|
|
|
{{end}}
|