| package google |
| |
| import ( |
| "fmt" |
| "math/rand" |
| "time" |
| ) |
| |
| // START2 OMIT |
| var ( |
| Web = FakeSearch("web", "The Go Programming Language", "http://golang.org") |
| Image = FakeSearch("image", "The Go gopher", "https://blog.golang.org/gopher/gopher.png") |
| Video = FakeSearch("video", "Concurrency is not Parallelism", "https://www.youtube.com/watch?v=cN_DpYBzKso") |
| ) |
| |
| type SearchFunc func(query string) Result // HL |
| |
| func FakeSearch(kind, title, url string) SearchFunc { |
| return func(query string) Result { |
| time.Sleep(time.Duration(rand.Intn(100)) * time.Millisecond) // HL |
| return Result{ |
| Title: fmt.Sprintf("%s(%q): %s", kind, query, title), |
| URL: url, |
| } |
| } |
| } |
| |
| // STOP2 OMIT |
| |
| // String returns the result's title, followed by a newline. |
| func (r Result) String() string { return r.Title + "\n" } |
| |
| var ( |
| Web1 = FakeSearch("web1", "The Go Programming Language", "http://golang.org") |
| Web2 = FakeSearch("web2", "The Go Programming Language", "http://golang.org") |
| Image1 = FakeSearch("image1", "The Go gopher", "https://blog.golang.org/gopher/gopher.png") |
| Image2 = FakeSearch("image2", "The Go gopher", "https://blog.golang.org/gopher/gopher.png") |
| Video1 = FakeSearch("video1", "Concurrency is not Parallelism", |
| "https://www.youtube.com/watch?v=cN_DpYBzKso") |
| Video2 = FakeSearch("video2", "Concurrency is not Parallelism", |
| "https://www.youtube.com/watch?v=cN_DpYBzKso") |
| ) |