Return to Golang, Programming topics, Google topics
“Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.” Fair Use Source: https://go.googlesource.com/go
“Go is a programming language built to resemble a simplified version of the C programming language. It compiles at the machine level. Go was created at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson.” Fair Use Source: https://github.com/topics/golang
adding lines during, 218-219
definition and overview of, 213
delve, using for, 221-224
fmt package, using for, 219, 222
GNU Debugger, using for, 224-225
of HTTP requests, 266-268
logging role in, 214, 216
test role in, 226
tool, selecting, 225
of web servers, 246
DecodeFile function, 301
default case, 61-62
default value, 91-93, 100
defer (defined), 53
defer statement, 66-69, 297
delve, 221-226
dependencies, 178-180, 183, 340
Developer Tools, 142-143
dictionary (term), 78, 80
directory, listing, 290, 295-296
disasters, handling, 129
disk, reading from, 140, 142, 154
distributed programming, 1
Docker, 334-336, 339-340
documentation, 195-198
dot notation
data accessing with, 84, 90, 101
sphere, working with, 104
values, assigning with, 85-87
dynamically typed languages, 13-14, 26
E
echo function, 222-223, 225
elapsed real time (term), 317
elements, forming collection of, 21
else if statement, 57-58, 60-61, 68
else statement, 55-57
encoding/json package, 285, 287
encoding standards, 122
English-language special characters, 116, 122-123
environment, 8, 329-331, 340
Errorf method, 133
error log, 213
errors
checking, 137
creating, 132-133
formatting, 133-134
handling, 15, 129-131, 137-138
logging, 214-215
returning from function, 134-135
type, understanding, 132
and usability, 135-136
writing, 242
errors package, 132-133
exit codes and meanings, 228
exiting, preventing process from, 163
F
fatal error, 215
file
as block, 35, 40
configuration, managing with, 299-300
copying, 296-298, 303
creating, 290, 292-294
deleting, 298-299
downloading, 336-338
existence, checking on, 303
importance of, 289-290
managing in directory, 227
name, 295-296
reading, 130-131, 140, 290-291
reformatting, 187
writing logs to, 216-217
writing to, 290, 294-295
file permissions, 213, 292-294, 295-296, 303
FindAllString function, 313
flag package, 232-235, 239
FlagSets, 237
floats, 20-21
flow control, 161-163
fmt package, 133, 219-222, 225-226
for loop, 167-169, 171
for statement, 62-66
4-bit integers, 18-19, 26
404s, 248-249
framework libraries, 257
FreeBSD, 4
French, Renee, 10
func keyword, 42
function
arguments and types, modifying for, 51
creating and calling, 43-44
definition and overview of, 41-42
errors, returning from, 134-135
method compared to, 101, 105, 113
passing as argument, 52
passing as value, 49-50
results, returning, 42-45
functional tests, 200
function arguments, 164
function signature, 41, 46-47
G
gdb, 224-225
GET requests, 255-258, 261-262, 266, 272
git command, 235
Github account, 8
Github API, 273, 285
GMT, 326
GNU Debugger, 224-225
GOARCH environment variable, 331
go build, 9-11, 229-230
go clean, 9
Go (Golang) description and overview, 1, 3-4
godoc, 192-197
GoDoc site, 197
go env command, 329-330, 340
gofmt
conventions, 197
golint compared to, 190-191
overview of, 186-187
plugins running on, 188
remembering to use, 196
go get command, 177-179, 183, 338-339
Go Gopher, 10-11
go install, 242
go keyword, 151-152
golint, 190-192, 196
“Goodbye Cruel World” value, 223, 225
Google, 3-4
Google Chrome Developer Tools, 260
GOPATH variable, 6-8
Go projects, directory structure for, 6-7
Goroutines
advantages of, 139, 153-154
Channels compared to, 171
communications between, 155-156
communication with, 159, 168
concurrent operations, handling with, 145, 161
defining, 152
execution, pausing, 327
flow control alternatives to, 163
HTTP requests, aid in making, 271
latency, managing with, 147-152
managing, 156-157
go run, 9-11
go set, 242
go test command, 201
got want pattern, 203-204
graphical user interfaces (GUI), 227
greeting, returning, 202-204
Greeting function, 204-206
Griesemer, Robert, 3
guessing game, 218-219
H
Half function, 135
HandleFunc method, 244, 247
Handler, 248-249
handler functions, 247-249
hash (term), 78, 80
header, setting, 249-250
“Hello World” file, 240-241
HelloWorld function, 244, 252
“Hello World” program, 8-9, 173
“Hello World” value, 223
“Hello World” web server, 243-249
help text, 234-239
html package, 315
HTTP (Hypertext Transfer Protocol)
complexity of, 271
definition and overview of, 259-261
JSON received over, 285-286
scraping, 311-312, 315
HTTP clients, 267, 271-272
HTTP header, 250
http package, 257
HTTP requests, 259-261, 264-268, 271
HTTP servers
creating, 243-245, 249-250, 253-254
data and requests sent to, 255-258
response to clients, 251
HTTPS server, 258
I
identifiers, uppercase versus lowercase letters starting, 183
idiomatic Go
defined, 185
error handling and, 130-131
golint aid in learning, 191
interface naming, 198
idiomatic variable, 33
if statement, 53-55, 69, 219
import statement, 174, 176
incorrect type, passing, 16-17
index, accessing array element with, 81
init statement, 63-64
inner blocks, 34
inputs and outputs, 228-229
installing Go, 4-8
integers, 15-16, 18-20, 45-46
integration tests, 200
interfaces, 109-113, 189, 198
international characters, 122-123, 127
interpreted string literals, 115, 116-117, 127
ioutil package, 290-298, 303
J
Java (programming language), 10, 138, 152, 192-193
javadoc, 192-193
JavaScript (programming language), 4, 13, 15, 286-287
JSON
advantages of, 286
APIs, 275
data posted as, 264
data types, 283-285
decoding, 281-282, 286
description and overview of, 273-274
encoding, 286
fields, mapping, 287
files, 299-300
HTTP, received over, 285-286
HTTP server sending, 249-250, 259
requesting data as, 267-268
string, 263
TOML compared to, 301, 303
using with Go, 275-281
K
key names, 278
L
languages, non-English, 126, 204-206
languages, programming, 9, 13, 89, 155-156
See also specific language, e.g.: Python (programming language)
latency, 147-152
lexical (defined), 33-34
lexical scoping, 33-34
LICENSE file, 182
Linux, 4-5, 7-8, 340
list command, 225
ListenAndServe method, 244, 258
ListenAndServeTLS method, 258
logging, 213-217, 226
logical operators, 59-60
log package, 215-216, 226
looking for a needle in a haystack, 305-306
looping, 62-63
lowercase, 124, 174, 183, 188, 278
M
macOS, 4, 5, 7-8
main package, 174
make builtin function, 80
Makefile, 196-197
malicious web server, 338
maps, 78-80
Marshal function, 275-276
MatchString function, 306
mathematical operations, 13, 21
math package, 189-190
memory, 25, 39, 155-156
memory address, 35-38
messages and messaging
advantages of, 156
to Channels, 157-160, 171
between Goroutines, 170
response to, 167
methods, 101-103, 105-109, 113-114
method sets, 103-105
monotonic clock (concept), 317
multiplayer games, 142
multiple defer statements, 67-69
multiple values, function returning, 44-45, 51
multiple variables, 220
MustCompile function, 316
MySQL database, 112-113
N
named return values, 46-48
names, key, 278
names beginning with uppercase letter, 100
naming conventions, 188-190
nesting structs, 89-91, 99
.NET, 178
net/http package, 243-244, 261-262, 264
network, 141, 154
network latency, 147-150, 152
network programming, 1, 51
Network Time Protocol (NTP), 318-319, 326-327
NewAlarm function, 92
NewDecoder function, 285
NewFlagSet, 236, 242
new keyword, 87-88
NewRequest method, 272
Nginx, 152, 213-214
Node.js, 3, 152, 178, 186
non-blocking code, 147
NotFound method, 249
numbers, determining if odd or even, 42
numeric notation, 292-293
numeric types, 18-19, 21, 25
O
object-oriented language, 112
omitempty struct tag, 287
OpenFile function, 297
Open function, 297
Open Source blogging engine, 214
Open Source Licenses, 182
Open Source projects, 186, 197
operating system, 227, 329
operators, 68
OR logical operator, 69
os package, 230, 234, 303
outer blocks, 34
P
package level block, 40
package managers, 178, 339
packages, 173-182
panic, using, 136-138
parallelism, 141-142
Pascal Case, 189
pausing process, 320, 327
permissions, 213, 292-296, 303
Pi constant, 174
Pike, Rob, 3, 4, 10, 122, 138, 142, 154
Plan 9 operating system, 3
platform, 331-332
pointer, 35-38, 96-100, 105-109
pointer reference, 106-109, 113
polymorphism (defined), 113-114
POSIX compliance, 239
postData variable, 263
POST requests, 255-258, 262-264, 272
post statement, 63-64
PowerOn method, 109-111
Printf function, 220
private values, 95
process, running indefinitely, 162-163
programming languages, 9, 13, 89, 155-156
See also specific language, e.g.: Python (programming language)
program speed, factors affecting, 140-141, 151-152
public values, 95
Python (programming language), 3-4, 13, 178
Q
Quickfix menu, 191
R
range clause, 64-66
raw command-line arguments, 229-230
raw string literals, 117-118, 235
Readfile function, 130-131, 291
README file, 182
real time (term), 317
receiver function, 160
recursive functions, 48-49, 51
reflect package, 22-23, 26
regex package, 306
regular expressions
case sensitivity in, 315
data, parsing with, 311-315
data, transforming with, 309-311
definition and overview of, 305-307
end of line, character signifying, 316
strings package compared to, 315
syntax, 307-308, 315
validation, using for, 308-309
Remove function, 298
request, setting on custom header, 271
requests, types of, 253-254, 256
requests and responses, examining, 245-247
response, status code of, 271
response speed, factors affecting, 269
responseTime function, 148
ResponseWriter, 258
return values, 134, 138
Reverse function, 176
Robot interface, 109-112
robots.txt file, 214
routing, 247, 257
Ruby (programming language), 4, 178
rune literals, 116-118
runtime errors, 213
S
sayHello function, 14-15
Schaaf, Herman, 127
scope (defined), 33
security issues, 183, 255, 337, 338, 340
select statement, 164-171
sequential tasks, 139-142
server security issues, 255-258
SGOPATH, 177, 183
short functions, 51
shorthand variables, 29-30
short variable, 32, 40
short variable assignment, 88-90
signed integers, 19-20
single result, function returning, 42-44
64-bit floats, 21
64-bit integer, 20
sleeping, 319-320, 327
slice
adding elements to, 74-76, 81
of bytes, 291
copying elements from, 77
defined, 73, 78
deleting elements from, 76, 80
length limit, 80
methods associated to, 114
numbers variables containing, 45
testing, use in, 206
using, criteria for, 80-81
working with, 73-74
slowFunc function, 144-146, 158
slowFunc method, 158-159
software, sharing, 339-340
sort comand, 227-228
source code, 39
space, trimming, 125-126
special characters, 116, 122-123, 127
Specification, 199
spheres, 103-104
Sqrt function, 189-190
square root, 190
Standard Error, 242
Standard Input (defined), 229
Standard Output (defined), 229
statically typed languages, 14, 26
strconv package, 23-24
string literals, 115-118, 127
strings
array elements, assignment to, 72
concatenating, 118-121, 126-127, 207-209
converting to and from, 21, 23, 120, 174
creating, 121, 127, 291
definition and overview of, 15, 21, 122-123, 126
format, representing time in, 322-323
lowercase, changing, 124, 174
number types distinguishing from, 25
parsing, 322-323
as programming building block, 115
searching for, 306-307
variable initializing with type of, 27-28
working with, 123-126
written to file, 294
strings package, 125, 174-175, 195, 315
stringutil package, 176, 179
strongly typed languages, 13-14, 26
struct
checking type of, 94-95
comparing, 93-95
copying, 96-99, 100
creating, 99, 206, 276, 286
data encoded to and from, 287
data type in, 100
decoding to JSON, 281-282
default value, creating for, 91-93
definition and overview of, 83-85
empty, encoding to JSON, 280-281
empty fields, omitting, 280-281, 287
encoding as JSON, 276-278
equivalence, testing for, 94
exporting, 100
initializing, 84-89
nesting, 89-91, 99
tags, 278-280, 287
time, 323-325
values, printing, 220-221
subcommands, 235-239
Sub method, 324
subslice, 80
substring, searching for, 124-125
switch statements, 60-62, 68, 164
systems programming, 1
tab, representation of table of binary operators table of bitwise operators table of comparison operators table of escape sequences table of keywords table of predeclared names table of Printf verbs table of UTF-8 encodings table, Sizeof table-driven testing table tests tag, struct field tagless switch statement tags, build targets TCP socket tax code techniques, in-place slice tempconv example tempconv example package temperature conversion example tempflag example template, | in template action,
Return to X, Kotlin glossary, Programming glossary, Kotlin, range Function, Functions-Methods, Standard Libraries
Functions and Methods: Bash Functions, C Function, C++ Functions, C# Functions, , Clojure Functions, COBOL Functions, Fortran Functions, Golang Functions, Haskell Functions, Java Methods, JavaScript Functions, Kotlin Methods, Oracle PL/SQL Functions, Python Functions, PowerShell Functions, Scala Functions, Swift Functions, T/SQL Functions. (navbar_functions)
Functions and Methods: Bash Functions, C Function, C++ Functions, C# Functions, , Clojure Functions, COBOL Functions, Fortran Functions, Golang Functions, Haskell Functions, Java Methods, JavaScript Functions, Kotlin Methods, Oracle PL/SQL Functions, Python Functions, PowerShell Functions, Scala Functions, Swift Functions, T/SQL Functions. (navbar_functions)
© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.
© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.
template API template, dot . in template.Funcs method template.HTML type template.Must function template.New function template.Parse method temporary directory temporary file Terraform test assertion test, black-box test, brittle test, character test coverage test dependency, cyclic Test-Driven Development (TDD) test, echo test failure message test files, placement of Test function test, integration test of word example test package, external test, string test, white-box _test.go file testing testing a command testing package testing, randomized testing, table-driven testing.B type testing.T type (*testing.T).Errorf method (*testing.T).Fatal method tests, running tests, writing tests, writing effective text editor text/scanner package text string text/tabwriter package text/template package third-party dependencies third-party Go plugins third-party packages third-party tools Thompson, Ken Thompson, Ken, Preface thread thread-local storage three-D surface figure thumbnail example thumbnail example package thumbnail sequence diagram ticker, using time time package time.After function time.AfterFunc function time.Duration type time.Minute constant time.Now function time.Parse function time.Second constant time.Since function time.Sleep method time.Tick function time.Time type time.Time.Format method timeout timers time structs time zone differences 32-bit floats 32-bit integer title example title function titles, writing to terminal token-based decoder API token-based XML decoding ToLower function TOML files tool, go tool, go doc tool, godoc, Preface tool, gofmt tool, goimports tool, golint topological sort algorithm topoSort example ToUpper method trace example trace, stack tree, binary treesort example triangle true boolean constant tuple assignment tuple assignment types checking converting between type ←chan T, receive-only channel type chan← T, send-only channel number of overview of type switch, case in type switch, default case in type, abstract type, aggregate type, array type assertion type assertion, interface type assertion, ok value from type, bool type, bufio.Scanner type, byte type, bytes.Buffer type, Celsius type, chan type, channel type, complex type, composite, Preface type composition, Preface type, concrete type declaration type, displaying methods of a type, empty interface type, error built-in type, Fahrenheit type, function type, http.HandlerFunc type, http.Request type, http.ResponseWriter type, int type, interface{} type, interface type, interface{} type, interface dynamic type, json.Decoder type, json.Encoder type keyword type, map type, method receiver type mismatch type, named type, net.Conn type, net.Listener type, numeric type, *os.File type, os.FileInfo type, os.LinkError type, os.PathError type, recursive type, reference type, reflect.StructTag type, reflect.Type type, reflect.Value type, rune type, slice type, sort.IntSlice type, strings.Reader type, strings.Replacer type, struct type, struct{} type switch statement type, sync.Mutex type, sync.Once type, sync.RWMutex type, sync.WaitGroup type, syscall.Errno type, template.HTML type, testing.B type, testing.T type, time.Duration type, time.Time type, uint type, uintptr type, underlying type, unidirectional channel type, unnamed struct type, unsafe.Pointer type, url.URL types, untyped constant working with
UDP socket Unicode encoding scheme Unit Tests uint type uintptr type unary operator - unary operator + unbuffered channel undefined behavior underlying array underlying type Unicode code point Unicode escape unicode package unicode.IsDigit function unicode.IsLetter function unicode.IsLower function unicode.IsSpace function unicode.IsUpper function Unicode replacement character unicode/utf8 package Unicode standard unidirectional channel type union, discriminated universe block Unix domain socket UNIX operating system The Unix Programming Environment (Thompson) unmarshaling JSON unnamed struct type unnamed variable unreachable statement unsafe package unsafe.AlignOf function unsafe.Offsetof function unsafe.Pointer conversion unsigned integer (defined) unsigned integer unsafe.Pointer type unsafe.Pointer zero value unsafe.Sizeof function uppercase untyped constant types unused parameter URL URL escape url.QueryEscape function url.URL type urlvalues example usability, errors and User Story UTF-8 UTF-8 encoding scheme UTF-8 encodings, table of utf8.DecodeRuneInString function utf8.RuneCountInString function utf8.UTFMax value
Go is a fast statically typed, compiled high-level general purpose programming language. It is known for its simplicity and efficiency. It was designed at Google in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson. It is syntactically similar to C, but also has memory safety, garbage collection, structural typing, and CSP-style concurrency. It is often referred to as Golang because of its former domain name,
golang.org
, but its proper name is Go.There are two major implementations:
- The original, self-hosting compiler toolchain, initially developed inside Google;
- A frontend written in C++, called gofrontend, originally a GCC frontend, providing gccgo, a GCC-based Go compiler; later extended to also support LLVM, providing an LLVM-based Go compiler called gollvm.
A third-party source-to-source compiler, GopherJS, compiles Go to JavaScript for front-end web development.