133 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Programming in Go by Mark Summerfield
 | 
						|
 | 
						|
ISBN: 0321774639
 | 
						|
 | 
						|
Copyright © 2011-12 Qtrac Ltd. 
 | 
						|
 | 
						|
All the programs, packages, and associated files in this archive are
 | 
						|
licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
						|
not use these files except in compliance with the License. You can get a
 | 
						|
copy of the License at: http://www.apache.org/licenses/LICENSE-2.0. (The
 | 
						|
License is also included in this archive in file LICENSE-2.0.txt.)
 | 
						|
 | 
						|
Unless required by applicable law or agreed to in writing, software
 | 
						|
distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
See the License for the specific language governing permissions and
 | 
						|
limitations under the License.
 | 
						|
 | 
						|
All the book's examples are designed to be educational, and many are
 | 
						|
also designed to be useful. I hope that you find them helpful, and are
 | 
						|
perhaps able to use some of them as starting points for your own
 | 
						|
projects.
 | 
						|
 | 
						|
On Unix-like systems (e.g., Linux, FreeBSD, Mac OS X), once you have
 | 
						|
installed Go, you can build all the examples in one go by executing:
 | 
						|
 | 
						|
    $ cd $HOME/goeg
 | 
						|
    $ ./build.sh
 | 
						|
 | 
						|
On Windows it works similarly:
 | 
						|
 | 
						|
    C:\>cd goeg
 | 
						|
    C:\goeg>build.bat
 | 
						|
 | 
						|
The build.sh (Unix) or build.bat (Windows) script sets GOPATH
 | 
						|
temporarily just for the build and uses the go command (go build); both
 | 
						|
assume that the go command (i.e., Go's bin directory) is in the PATH
 | 
						|
which it will be if you installed a binary version.
 | 
						|
 | 
						|
If you want to build the examples individually and build your own Go
 | 
						|
programs you will need to set GOPATH. This can be done temporarily by
 | 
						|
running the accompanying gopath.sh (Unix) or gopath.bat (Windows) script
 | 
						|
(after editing to change any paths to match your setup), or permanently
 | 
						|
by adding the export lines from gopath.sh to your .bashrc file or on
 | 
						|
Windows by creating a Go-specific console shortcut: see
 | 
						|
gopath.sh or gopath.bat for more information.
 | 
						|
 | 
						|
Here is the list of programs and packages referred to in the book
 | 
						|
grouped by chapter:
 | 
						|
 | 
						|
Chapter 1: An Overview in Five Examples
 | 
						|
    hello
 | 
						|
    bigdigits
 | 
						|
    stack
 | 
						|
    americanize
 | 
						|
    polar2cartesian
 | 
						|
    bigdigits_ans
 | 
						|
 | 
						|
Chapter 2: Identifiers, Booleans, and Numbers
 | 
						|
    pi_by_digits
 | 
						|
    statistics
 | 
						|
    statistics_ans
 | 
						|
    quadratic_ans1
 | 
						|
    quadratic_ans2
 | 
						|
 | 
						|
Chapter 3: Strings
 | 
						|
    m3u2pls
 | 
						|
    playlist
 | 
						|
    soundex
 | 
						|
 | 
						|
Chapter 4: Collection Types
 | 
						|
    guess_separator
 | 
						|
    wordfrequency
 | 
						|
    chap4_ans
 | 
						|
 | 
						|
Chapter 5: Procedural Programming
 | 
						|
    archive_file_list
 | 
						|
    archive_file_list_ans
 | 
						|
    statistics_nonstop
 | 
						|
    statistics_nonstop2
 | 
						|
    contains
 | 
						|
    palindrome
 | 
						|
    palindrome_ans
 | 
						|
    memoize
 | 
						|
    indent_sort
 | 
						|
    common_prefix
 | 
						|
 | 
						|
Chapter 6: Object-Oriented Programming
 | 
						|
    fuzzy
 | 
						|
    fuzzy_immutable
 | 
						|
    fuzzy_mutable
 | 
						|
    fuzzy_value
 | 
						|
    shaper1
 | 
						|
    shaper2
 | 
						|
    shaper3
 | 
						|
    ordered_map
 | 
						|
    qtrac.eu/omap
 | 
						|
    font
 | 
						|
    shaper_ans1
 | 
						|
    shaper_ans2
 | 
						|
    shaper_ans3
 | 
						|
 | 
						|
Chapter 7: Concurrent Programming
 | 
						|
    filter
 | 
						|
    cgrep1
 | 
						|
    cgrep2
 | 
						|
    cgrep3
 | 
						|
    safemap
 | 
						|
    apachereport1
 | 
						|
    apachereport2
 | 
						|
    apachereport3
 | 
						|
    findduplicates
 | 
						|
    safeslice
 | 
						|
    apachereport4
 | 
						|
    [apachereport5 added to examples after publication; see errata]
 | 
						|
    imagetag1
 | 
						|
    imagetag2
 | 
						|
    sizeimages1
 | 
						|
    sizeimages2
 | 
						|
 | 
						|
Chapter 8: File Handling
 | 
						|
    invoicedata
 | 
						|
    pack
 | 
						|
    unpack
 | 
						|
    unpack_ans
 | 
						|
    utf16-to-utf8
 | 
						|
    invoicedata_ans
 | 
						|
 | 
						|
Chapter 9: Packages
 | 
						|
    qtrac.eu/omap
 | 
						|
    cgrep3
 | 
						|
    linkcheck
 |