{{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" title="Format this code">Format</button>
      {{- if $canShare}}
      <button id="share" class="Button js-playgroundShareEl" 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 id="wrap">
    <textarea id="code" name="code" class="Playground-input js-playgroundCodeEl" autocorrect="off" autocomplete="off" autocapitalize="off" spellcheck="false" aria-label="Try Go">{{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}}
