{{block "entirepage" . -}}
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Google Tag Manager -->
<link rel="preconnect" href="https://www.googletagmanager.com">
<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
  <!-- End Google Tag Manager -->
<meta charset="utf-8">
<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#00add8">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
<link rel="stylesheet" href="/css/styles.css">
{{if strings.HasPrefix .URL "/blog/"}}
<link rel="stylesheet" href="/css/blogfonts.css">
<link rel="alternate" title="The Go Blog" type="application/atom+xml" href="/blog/feed.atom">
{{end}}
  <!-- Google Tag Manager -->
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
  <!-- End Google Tag Manager -->
<script src="/js/site.js"></script>
<title>{{.title}}{{if ne .URL "/"}} - go.dev{{end}}</title>
{{if .link -}}
<meta http-equiv="refresh" content="0; url={{.link}}">
{{end -}}
</head>
<body class="Site">
  <!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->

{{$menus := data "/menus.yaml"}}
<header class="Site-header js-siteHeader">
  <div class="Banner">
    <div class="Banner-inner">
      <div class="Banner-message">Black Lives Matter</div>
      <a class="Banner-action"
         href="https://support.eji.org/give/153413/#!/donation/checkout"
         target="_blank"
         rel="noopener">
         Support the Equal Justice Initiative
      </a>
    </div>
  </div>
  <div class="Header Header--dark">
    <nav class="Header-nav">
      <a href="/">
        <img
          class="js-headerLogo Header-logo"
          src="/images/go-logo-white.svg"
          alt="Go">
      </a>
      <div class="Header-rightContent">
        <ul class="Header-menu">
          {{- $currentPage := .}}
          {{- range $menus.main}}
          <li class="Header-menuItem {{if strings.HasPrefix $currentPage.URL .url}} Header-menuItem--active{{end}}">
            <a href="{{.url}}">{{.name}}</a>
          </li>
          {{- end}}
        </ul>
        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
        </button>
      </div>
    </nav>
    {{ if (eq .series "Use Cases") }}
    <div class="UseCaseSubNav js-useCaseSubnav">
      <button class="UseCaseSubNav-menuHeader js-useCaseSubnavHeader">
        Jump to
        <img
          class="UseCaseSubNav-menuIcon js-useCaseSubnavMenuIcon"
          alt="Open menu icon" src="/images/icons/chevron-down.svg">
      </button>
      <div class="UseCaseSubNav-menu js-useCaseSubnavMenu">
        <div class="UseCaseSubNav-anchorLinks js-useCaseSubnavLinks">
        </div>
      </div>
    </div>
    {{end}}
  </div>
</header>
<aside class="NavigationDrawer js-header">
  <nav class="NavigationDrawer-nav">
    <div class="NavigationDrawer-header">
      <a href="/">
        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
      </a>
    </div>
    <ul class="NavigationDrawer-list">
      {{- range $menus.main}}
        <li class="NavigationDrawer-listItem {{if strings.HasPrefix $currentPage.URL .url}} NavigationDrawer-listItem--active{{end}}">
          <a href="{{.url}}">{{.name}}</a>
        </li>
      {{- end}}
    </ul>
  </nav>
</aside>
<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
<main class="SiteContent SiteContent--default">
  {{block "layout" .}}{{.Content}}{{end}}
</main>
<footer class="Site-footer">
  <div class="Footer">
    <div class="Container">
      <div class="Footer-links">
        {{- range $menus.footer}}
          <div class="Footer-linkColumn">
            <a href="{{.url}}" class="Footer-link Footer-link--primary">
              {{.name}}
            </a>
            {{- range .children}}
              <a href="{{.url}}" class="Footer-link">
                {{.name}}
              </a>
            {{- end}}
          </div>
        {{- end}}
      </div>
    </div>
  </div>
  <div class="Footer">
    <div class="Container Container--fullBleed">
      <div class="Footer-bottom">
        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
        <ul class="Footer-listRow">
          <li class="Footer-listItem">
            <a href="/copyright">Copyright</a>
          </li>
          <li class="Footer-listItem">
            <a href="/tos">Terms of Service</a>
          </li>
          <li class="Footer-listItem">
            <a href="http://www.google.com/intl/en/policies/privacy/"
              target="_blank"
              rel="noopener">
              Privacy Policy
            </a>
            </li>
          <li class="Footer-listItem">
            <a
              href="/s/website-issue"
              target="_blank"
              rel="noopener"
              >
              Report an Issue
            </a>
          </li>
        </ul>
        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
        </a>
      </div>
    </div>
  </div>
  <script src="/js/jquery.js"></script>
  <script src="/js/carousels.js"></script>
  <script src="/js/searchBox.js"></script>
  <script src="/js/misc.js"></script>
  <script src="/js/hats.js"></script>
  <script src="/js/playground.js"></script>
  <script src="/js/godocs.js"></script>
</footer>
</body>
</html>
{{end}}

{{define "breadcrumbnav p1 p2"}}
{{- if ne .p1.URL "/"}}
  {{- breadcrumbnav (page (path.Dir (strings.TrimRight .p1.URL "/"))) .p2}}
{{- end}}
{{- if not (eq .p1.title "go.dev")}}
<li class="BreadcrumbNav-li {{if eq .p1.URL .p2.URL}}active{{end}}">
  <a class="BreadcrumbNav-link" href="{{.p1.URL}}">
  {{or .p1.company .p1.title}}
  </a>
</li>
{{- end}}
{{- end}}

{{define "breadcrumbs"}}
<div class="BreadcrumbNav">
    <ol class="BreadcrumbNav-inner">
      {{breadcrumbnav . .}}
    </ol>
</div>
{{- end}}

{{define "gopher info" -}}
{{- with (yaml .info)}}
{{- $src := "/images/gophers/wrench.svg"}}
{{- $alt := "Go gophers with wrench"}}
{{- $size := "Large"}}
{{- $align := "Left"}}
{{- $gopher := .color}}
{{- $sizeIn := (or .size "")}}
{{- if eq (.align) "right" "Right"}}
   {{- $align = "Right"}}
{{- end}}
{{- if eq $sizeIn "XLarge" "xl" "xlarge"}}
    {{- $size = "XLarge"}}
{{- end}}
{{- if eq $gopher "plane"}}
    {{- $src = "/images/gophers/biplane.svg"}}
    {{- $alt = "Go gopher in a plane"}}
{{- end}}
{{- if eq $gopher "blue"}}
    {{- $src = "/images/gophers/blue.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "front" "sticker1"}}
    {{- $src = "/images/gophers/front.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "graduate"}}
    {{- $src = "/images/gophers/graduate.svg"}}
    {{- $alt = "Go gopher graduating"}}
{{- end}}
{{- if eq $gopher "graduate-colorized"}}
    {{- $src = "/images/gophers/graduate-colorized.svg"}}
    {{- $alt = "Go gopher graduating"}}
{{- end}}
{{- if eq $gopher "green"}}
    {{- $src = "/images/gophers/green.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "grey" "gray"}}
    {{- $src = "/images/gophers/grey.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "happy" "sticker2"}}
    {{- $src = "/images/gophers/happy.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "headlamp"}}
    {{- $src = "/images/gophers/headlamp.svg"}}
    {{- $alt = "Go gopher with headlamp"}}
{{- end}}
{{- if eq $gopher "headlamp-colorized"}}
    {{- $src = "/images/gophers/headlamp-colorized.svg"}}
    {{- $alt = "Go gopher with headlamp"}}
{{- end}}
{{- if eq $gopher "ladder"}}
    {{- $src = "/images/gophers/ladder.svg"}}
    {{- $alt = "Go gopher with ladder"}}
{{- end}}
{{- if eq $gopher "machine"}}
    {{- $src = "/images/gophers/machine.svg"}}
    {{- $alt = "Go gophers with a machine"}}
{{- end}}
{{- if eq $gopher "machine-colorized"}}
    {{- $src = "/images/gophers/machine-colorized.svg"}}
    {{- $alt = "Go gopher with a machine"}}
{{- end}}
{{- if eq $gopher "megaphone"}}
    {{- $src = "/images/gophers/megaphone.svg"}}
    {{- $alt = "Go gopher with a megaphone"}}
{{- end}}
{{- if eq $gopher "peach"}}
    {{- $src = "/images/gophers/peach.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "pilot-bust"}}
    {{- $src = "/images/gophers/pilot-bust.svg"}}
    {{- $alt = "Go gopher pilot"}}
{{- end}}
{{- if eq $gopher "pink"}}
    {{- $src = "/images/gophers/pink.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "running"}}
    {{- $src = "/images/gophers/running.svg"}}
    {{- $alt = "Go gopher running"}}
{{- end}}
{{- if eq $gopher "slate"}}
    {{- $src = "/images/gophers/slate.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "wrench"}}
    {{- $src = "/images/gophers/wrench.svg"}}
    {{- $alt = "gopher with a wrench"}}
{{- end}}
{{- if eq $gopher "yellow"}}
    {{- $src = "/images/gophers/yellow.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "violet"}}
    {{- $src = "/images/gophers/violet.svg"}}
    {{- $alt = "Go gopher"}}
{{- end}}
{{- if eq $gopher "factory"}}
    {{- $src = "/images/gophers/factory.png"}}
    {{- $alt = "Go gopher factory"}}
{{- end}}
<img
  loading="lazy"
  class="{{$size}}Media-image {{$align}}"
  alt="{{$alt}}"
  src="{{$src}}">
{{- end}}
{{- end}}

{{define "pkg path name?" -}}
<a href="https://pkg.go.dev/{{.path}}?tab=overview">{{or .name .path}}</a>
{{- end}}


{{define "breadcrumb"}}
{{$elems := strings.Split (strings.Trim . "/") "/"}}
{{$prefix := slice $elems 0 (sub (len $elems) 1)}}
{{range $i, $elem := $prefix -}}
<a href="/{{strings.Join (slice $prefix 0 (add $i 1)) "/"}}/">{{$elem}}</a>/
{{- end -}}
<span class="text-muted">{{strings.Join (slice $elems (len $prefix) (len $elems)) "/"}}</span>
{{end}}

{{define "doclayout"}}
{{/* used from various subdirectory default.tmpl */}}
<article class="Doc Article">

{{if .title}}
<h1>{{.title}}</h1>
{{else if eq .layout "error"}}
<h1>Error</h1>
{{else if eq .layout "dir"}}
<h1>Directory {{breadcrumb .URL}}</h1>
{{else if and (eq .layout "texthtml") (strings.HasSuffix .URL ".go")}}
<h1>Source file {{breadcrumb .URL}}</h1>
{{else if eq .layout "texthtml"}}
<h1>Text file {{breadcrumb .URL}}</h1>
{{end}}

{{with .subtitle}}
<h2 class="subtitle">{{.}}</h2>
{{end}}

{{/* The Table of Contents is automatically inserted in this <div>.
     Do not delete this <div>. */}}
{{if not .hidetoc}}
<div id="nav" class="TOC"></div>
{{end}}

{{.Content}}

</article>

{{end}}
