100% found this document useful (1 vote)
33 views

Learning Go Programming 1st Edition Vladimir Vivien - Download the full ebook set with all chapters in PDF format

The document is a comprehensive guide to 'Learning Go Programming' by Vladimir Vivien, covering essential topics such as syntax, control flow, data types, functions, packages, concurrency, and more. It is designed for both new and experienced programmers to understand and utilize the Go programming language effectively. The book includes practical examples, insights, and resources for further learning.

Uploaded by

alraqerembes
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
33 views

Learning Go Programming 1st Edition Vladimir Vivien - Download the full ebook set with all chapters in PDF format

The document is a comprehensive guide to 'Learning Go Programming' by Vladimir Vivien, covering essential topics such as syntax, control flow, data types, functions, packages, concurrency, and more. It is designed for both new and experienced programmers to understand and utilize the Go programming language effectively. The book includes practical examples, insights, and resources for further learning.

Uploaded by

alraqerembes
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 75

Read Anytime Anywhere Easy Ebook Downloads at ebookmeta.

com

Learning Go Programming 1st Edition Vladimir


Vivien

https://ebookmeta.com/product/learning-go-programming-1st-
edition-vladimir-vivien/

OR CLICK HERE

DOWLOAD EBOOK

Visit and Get More Ebook Downloads Instantly at https://ebookmeta.com


Table of Contents
Learning Go Programming
Credits
About the Author
About the Reviewers
www.PacktPub.com
Why subscribe?
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. A First Step in Go
The Go programming language
Playing with Go
No IDE required
Installing Go
Source code examples
Your first Go program
Go in a nutshell
Functions
Packages
The workspace
Strongly typed
Composite types
The named type
Methods and objects
Interfaces
Concurrency and channels
Memory management and safety
Fast compilation
Testing and code coverage
Documentation
An extensive library
The Go Toolchain
Summary
2. Go Language Essentials
The Go source file
Optional semicolon
Multiple lines
Go identifiers
The blank identifier
Muting package imports
Muting unwanted function results
Built-in identifiers
Types
Values
Functions
Go variables
Variable declaration
The zero-value
Initialized declaration
Omitting variable types
Short variable declaration
Restrictions for short variable declaration
Variable scope and visibility
Variable declaration block
Go constants
Constant literals
Typed constants
Untyped constants
Assigning untyped constants
Constant declaration block
Constant enumeration
Overriding the default enumeration type
Using iota in expressions
Skipping enumerated values
Go operators
Arithmetic operators
The increment and decrement operators
Go assignment operators
Bitwise operators
Logical Operators
Comparison operators
Operator precedence
Summary
3. Go Control Flow
The if statement
The if statement initialization
Switch statements
Using expression switches
The fallthrough cases
Expressionless switches
Switch initializer
Type switches
The for statements
For condition
Infinite loop
The traditional for statement
The for range
The break, continue, and goto statements
The label identifier
The break statement
The continue statement
The goto statement
Summary
4. Data Types
Go types
Numeric types
Unsigned integer types
Signed integer types
Floating point types
Complex number types
Numeric literals
Boolean type
Rune and string types
The rune
The string
Interpreted and raw string literals
Pointers
The pointer type
The address operator
The new() function
Pointer indirection - accessing referenced values
Type declaration
Type conversion
Summary
5. Functions in Go
Go functions
Function declaration
The function type
Variadic parameters
Function result parameters
Named result parameters
Passing parameter values
Achieving pass-by-reference
Anonymous Functions and Closures
Invoking anonymous function literals
Closures
Higher-order functions
Error signaling and handling
Signaling errors
Error handling
The error type
Deferring function calls
Using defer
Function panic and recovery
Function panic
Function panic recovery
Summary
6. Go Packages and Programs
The Go package
Understanding the Go package
The workspace
Creating a workspace
The import path
Creating packages
Declaring the package
Multi-File packages
Naming packages
Use globally unique namespaces
Add context to path
Use short names
Building packages
Installing a package
Package visibility
Package member visibility
Importing package
Specifying package identifiers
The dot identifier
The blank identifier
Package initialization
Creating programs
Accessing program arguments
Building and installing programs
Remote packages
Summary
7. Composite Types
The array type
Array initialization
Declaring named array types
Using arrays
Array length and capacity
Array traversal
Array as parameters
The slice type
Slice initialization
Slice representation
Slicing
Slicing a slice
Slicing an array
Slice expressions with capacity
Making a slice
Using slices
Slices as parameters
Length and capacity
Appending to slices
Copying slices
Strings as slices
The map type
Map initialization
Making Maps
Using maps
Map traversal
Map functions
Maps as parameters
The struct type
Accessing struct fields
Struct initialization
Declaring named struct types
The anonymous field
Promoted fields
Structs as parameters
Field tags
Summary
8. Methods, Interfaces, and Objects
Go methods
Value and pointer receivers
Objects in Go
The struct as object
Object composition
Field and method promotion
The constructor function
The interface type
Implementing an interface
Subtyping with Go interfaces
Implementing multiple interfaces
Interface embedding
The empty interface type
Type assertion
Summary
9. Concurrency
Goroutines
The go statement
Goroutine scheduling
Channels
The Channel type
The send and receive operations
Unbuffered channel
Buffered channel
Unidirectional channels
Channel length and capacity
Closing a channel
Writing concurrent programs
Synchronization
Streaming data
Using for…range to receive data
Generator functions
Selecting from multiple channels
Channel timeout
The sync package
Synchronizing with mutex locks
Synchronizing access to composite values
Concurrency barriers with sync.WaitGroup
Detecting race conditions
Parallelism in Go
Summary
10. Data IO in Go
IO with readers and writers
The io.Reader interface
Chaining readers
The io.Writer interface
Working with the io package
Working with files
Creating and opening files
Function os.OpenFile
Files writing and reading
Standard input, output, and error
Formatted IO with fmt
Printing to io.Writer interfaces
Printing to standard output
Reading from io.Reader
Reading from standard input
Buffered IO
Buffered writers and readers
Scanning the buffer
In-memory IO
Encoding and decoding data
Binary encoding with gob
Encoding data as JSON
Controlling JSON mapping with struct tags
Custom encoding and decoding
Summary
11. Writing Networked Services
The net package
Addressing
The net.Conn Type
Dialing a connection
Listening for incoming connections
Accepting client connections
A TCP API server
Connecting to the TCP server with telnet
Connecting to the TCP server with Go
The HTTP package
The http.Client type
Configuring the client
Handling client requests and responses
A simple HTTP server
The default server
Routing requests with http.ServeMux
The default ServeMux
A JSON API server
Testing the API server with cURL
An API server client in Go
A JavaScript API server client
Summary
12. Code Testing
The Go test tool
Test file names
Test organization
Writing Go tests
The test functions
Running the tests
Filtering executed tests
Test logging
Reporting failure
Skipping tests
Table-driven tests
HTTP testing
Testing HTTP server code
Testing HTTP client code
Test coverage
The cover tool
Code benchmark
Running the benchmark
Skipping test functions
The benchmark report
Adjusting N
Comparative benchmarks
Summary
Learning Go Programming
Learning Go Programming
Copyright © 2016 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in


a retrieval system, or transmitted in any form or by any means,
without the prior written permission of the publisher, except in the
case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure
the accuracy of the information presented. However, the information
contained in this book is sold without warranty, either express or
implied. Neither the author, nor Packt Publishing, and its dealers and
distributors will be held liable for any damages caused or alleged to
be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information


about all of the companies and products mentioned in this book by
the appropriate use of capitals. However, Packt Publishing cannot
guarantee the accuracy of this information.

First published: October 2016

Production reference: 1201016

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham

B3 2PB, UK.

ISBN 978-1-78439-543-8
www.packtpub.com
Credits

Authors Copy Editor

Vladimir Vivien Safis Editing

Reviewers

Quintessence Anx
Project Coordinator
Parth Desai
Nidhi Joshi
Abhishek Kumar

Chris Schaefer

Commissioning Editor Proofreader

Akram Hussain Safis Editing

Acquisition Editor Indexer

Manish Nainnani Aishwarya Gangawane

Content Development Editor Graphics

Aishwarya Pandere Disha Haria

Technical Editor Production Coordinator


Mohita Vyas Nilesh Mohite
About the Author
Vladimir Vivien (@vladimirvivien) is a software engineer living in
the United States. He is a previously published author and has
written code in languages such as Java, JavaScript, Python, C to
name a few. Vladimir has work in diverse industries including
technology, publishing, financial, and healthcare. After years of
building enterprise systems using Java, Vladimir came to Go for its
simplicity and stayed for its concurrency and fast build time. Vladimir
continues to use Go as his primary language to build and create
open source software (https://github.com/vladimirivivien).
About the Reviewers
Quintessence Anx. is a superhero (also called as Cloud Engineer)
at Stark & Wayne LLC by day and an astronomer with a passion for
the Internet of Things by night. She is a chapter leader for her local
Girl Develop It, where she empowers women programmers of all
levels and abilities through classes and hands-on project
experiences, as well as co-founder of City of Light 2.0, an
organization working to bring more affordable, reliable, and faster
internet to Western New York

Parth Desai is a polygot programmer and architect, and has worked


on almost all popular languages like Golang, python, C#. He
regularly contributes to various open-source golang projects, like a
notification engine called “Khabar”, a http framework written in
golang called “Gottp”, and media server called “moire”. He
implemented url signing protocol using cryptography in python, from
scratch.

He has also written custom single sign on solution (SSO) in c#, with
proper implementation of oauth and saml protocols. He also
developed pluggable architecture to facilitate easier adding and
removing of authentication providers for the SSO. Currently, He is
working as a lead backend engineer, and designing and
implementing scalable systems in golang and python. You can reach
out to him on linkedin at https://in.linkedin.com/in/parthdesai08. Or
on his email-id [email protected].

Abhishek Kumar is a technologist in IT Industry since 2010 mainly


working in Systems Programming, DevOps Practices and Security.
He likes to keep in sync with all domains, paradigms and up-coming
technologies to get a wholistic approach for problem solving and
planning ahead. He loves to learn new programming languages.
Abhishek has been using Golang since 2012. He started a
timeseries datastore project in Golang by Sep'2013 and is currently
pivoting it. [ @abionic | https://abhishekkr.github.io ]
Want to thank my mother ShivPyari to enable me choose my own
path

Chris Schaefer software developer with a passion for learning new


things. He enjoys writing code and participating in local community
software events.
www.PacktPub.com
For support files and downloads related to your book, please
visit www.PacktPub.com.

Did you know that Packt offers eBook versions of every book
published, with PDF and ePub files available? You can upgrade to
the eBook version at www.PacktPub.com and as a print book
customer, you are entitled to a discount on the eBook copy. Get in
touch with us at [email protected] for more details.

At www.PacktPub.com, you can also read a collection of free


technical articles, sign up for a range of free newsletters and receive
exclusive discounts and offers on Packt books and eBooks.

https://www.packtpub.com/mapt

Get the most in-demand software skills with Mapt. Mapt gives you
full access to all Packt books and video courses, as well as industry-
leading tools to help you plan your personal development and
advance your career.

Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Preface
Go is an open source programming language that lets programmers
easily build reliable and scalable programs. It does this by offering a
simple syntax which makes it fun to write correct and predictable
code using concurrency idioms and a robust standard library.

Go has a large and active online community and there are several
Go conferences that take place around the world yearly. Starting
with https://golang.org/, you will find numerous places on the web
that provide documentations, blogs, videos, and slides that cover a
wide range of Go-related topics. On GitHub, the story is no different;
some of the best known projects that are driving the future of cloud
computing, for instance, are written in Go with an ever growing list.

As you would expect, getting started with Go is simple, fast, and well
documented. However, “getting into” Go can be more challenging,
especially for newcomers from other languages. My first attempt at
Go failed. Even after reading the prescribed documentations and
going through the tutorials, there was a gap in understanding driven
by my own biases from previous programming experiences. Months
later I returned to Go and got into it. This time I read the language
specs, I read blogs, watch videos, and searched the web for any
discussion that provided design motivations and in-depth
explanations of the language.

Learning Go is a book intended to help new, and seasoned


programmers alike, to get into the Go programming language. With
this book, I have attempted to write the book I would have like to
have read when I was starting out with Go. It distills the language
specs, the documentations, the blogs, the videos, slides, and my
own experiences of writing Go into content that carefully provides the
right amount of depth and insights to help you understand the
language and its design.

I hope that you enjoy it.


What this book covers
Chapter 1, A First Step in Go, the reader is introduced to Go at a
high-level and take a tour of the features that have made the
language a favorite among its adopters.

Chapter 2, Go Language Essentials, this chapter starts with a


deeper exploration Go’s syntax and other language elements such
as source files, variables, and operators.

Chapter 3, Go Control Flow, examines Go program control flow


elements including if, loop, and switch statements.

Chapter 4, Data Types, introduces its readers to Go’s type system


including detail about built-in types, type declaration, and conversion.

Chapter 5, Functions in Go, discusses the characteristics of the Go


function type including definition, assignment, variadic parameters,
and closures.

Chapter 6, Go Packages and Program Structures, introduces


readers to the organization of functions as a logical grouping known
as packages and programs.

Chapter 7, Composite Types, this chapter continues the discussion


Go types by introducing the reader to Go’s composite types such as
arrays, slices, maps, and structs.

Chapter 8, Methods, Interfaces, and Objects, introduces the reader


to Go idioms and features that can be used to create and compose
object structures.

Chapter 9, Concurrency, introduces the reader to the topics of writing


concurrent programs in Go using language constructs such as
goroutines and channels.
Chapter 10, Data IO in Go, covers the built-in interfaces and APIs to
achieve streaming input, output, and encoding of data.

Chapter 11, Writing Networked Services, explores the Go’s standard


library for creating connected applications using covering topics from
low-level TCP protocols to HTTP an RPC.

Chapter 12, Code Testing, here readers are introduced to Go’s


inherent support and tools for code testing and benchmarking.
What you need for this book
To follow the examples in this book, you will need Go version 1.6 or
later. Go supports architectures including AMD64, x386, and ARM
running the following operating systems:

Windows XP (or later)


Mac OSX 10.7 (or later)
Linux 2.6 (or later)
FreeBSD 8 (or later)
Who this book is for
If you have prior exposure to programming and are interested
learning the Go, this book is designed for you. While it assumes that
you are familiar with concepts such as variables, data types, arrays,
methods, and functions, the book is designed to allow you to follow
chapter by chapter or skip around to the topics you want to learn
about.
Conventions
In this book, you will find a number of text styles that distinguish
between different kinds of information. Here are some examples of
these styles and an explanation of their meaning.

Code words in text, database table names, folder names, filenames,


file extensions, pathnames, dummy URLs, user input, and Twitter
handles are shown as follows: "Save the source code in a file called
helloworld.go anywhere inside your GOPATH."

A block of code is set as follows:

package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}

Any command-line input or output is written as follows:

$> go version
go version go1.6.1 linux/amd64

New terms and important words are shown in bold. Words that you
see on the screen, for example, in menus or dialog boxes, appear in
the text like this: "If all goes well, you should see the message Hello,
World! output on your screen.."

Note
Warnings or important notes appear in a box like this.

Tip
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what
you think about this book-what you liked or disliked. Reader
feedback is important for us as it helps us develop titles that you will
really get the most out of. To send us general feedback, simply e-
mail [email protected], and mention the book's title in the
subject of your message. If there is a topic that you have expertise in
and you are interested in either writing or contributing to a book, see
our author guide at www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a
number of things to help you to get the most from your purchase.

Downloading the example code


You can download the example code files for this book from your
account at http://www.packtpub.com. If you purchased this book
elsewhere, you can visit http://www.packtpub.com/support and
register to have the files e-mailed directly to you.

You can download the code files by following these steps:

1. Log in or register to our website using your e-mail address and


password.
2. Hover the mouse pointer on the SUPPORT tab at the top.
3. Click on Code Downloads & Errata.
4. Enter the name of the book in the Search box.
5. Select the book for which you're looking to download the code
files.
6. Choose from the drop-down menu where you purchased this
book from.
7. Click on Code Download.

Once the file is downloaded, please make sure that you unzip or
extract the folder using the latest version of:

WinRAR / 7-Zip for Windows


Zipeg / iZip / UnRarX for Mac
7-Zip / PeaZip for Linux

The code bundle for the book is also hosted on GitHub at


https://github.com/PacktPublishing/Learning-Go-Programming. We
also have other code bundles from our rich catalog of books and
videos available at https://github.com/PacktPublishing/. Check them
out!

Downloading the color images of this


book
We also provide you with a PDF file that has color images of the
screenshots/diagrams used in this book. The color images will help
you better understand the changes in the output. You can download
this file from
http://www.packtpub.com/sites/default/files/downloads/LearningGoPr
ograming_ColorImages.pdf.

Errata
Although we have taken every care to ensure the accuracy of our
content, mistakes do happen. If you find a mistake in one of our
books-maybe a mistake in the text or the code-we would be grateful
if you could report this to us. By doing so, you can save other
readers from frustration and help us improve subsequent versions of
this book. If you find any errata, please report them by visiting
http://www.packtpub.com/submit-errata, selecting your book, clicking
on the Errata Submission Form link, and entering the details of
your errata. Once your errata are verified, your submission will be
accepted and the errata will be uploaded to our website or added to
any list of existing errata under the Errata section of that title.

To view the previously submitted errata, go to


https://www.packtpub.com/books/content/support and enter the
name of the book in the search field. The required information will
appear under the Errata section.

Piracy
Piracy of copyrighted material on the Internet is an ongoing problem
across all media. At Packt, we take the protection of our copyright
and licenses very seriously. If you come across any illegal copies of
our works in any form on the Internet, please provide us with the
location address or website name immediately so that we can
pursue a remedy.

Please contact us at [email protected] with a link to the


suspected pirated material.

We appreciate your help in protecting our authors and our ability to


bring you valuable content.

Questions
If you have a problem with any aspect of this book, you can contact
us at [email protected], and we will do our best to address
the problem.
Chapter 1. A First Step in Go
In the first chapter of the book, you will be introduced to Go and take
a tour of the features that have made the language a favorite among
its adopters. The start of the chapter provides the motivation behind
the Go programming language. If you are impatient, however, you
are welcome to skip to any of the other topics and learn how to write
your first Go program. Finally, the Go in a nutshell section provides a
high-level summary of the characteristics of the language.

The following topics are covered in this chapter:

The Go programming language


Playing with Go
Installing Go
Your first Go program
Go in a nutshell

The Go programming language


Since the invention of the C language in the early 1970s by Dennis
Ritchie at Bell Labs, the computing industry has produced many
popular languages that are based directly on (or have borrowed
ideas from) its syntax. Commonly known as the C-family of
languages, they can be split into two broad evolutionary branches. In
one branch, derivatives such as C++, C#, and Java have evolved to
adopt a strong type system, object orientation, and the use of
compiled binaries. These languages, however, tend to have a slow
build-deploy cycle and programmers are forced to adopt a complex
object-oriented type system to attain runtime safety and speed of
execution:
In the other evolutionary linguistic branch are languages such as
Perl, Python, and JavaScript that are described as dynamic
languages for their lack of type safety formalities, use of lightweight
scripting syntax, and code interpretation instead of compilation.
Dynamic languages have become the preferred tool for web and
cloud scale development where speed and ease of deployment are
valued over runtime safety. The interpreted nature of dynamic
languages means, however, they generally run slower than their
compiled counterparts. In addition, the lack of type safety at runtime
means the correctness of the system scales poorly as the application
grows.

Go was created as a system language at Google in 2007 by Robert


Griesemer, Rob Pike, and Ken Thomson to handle the needs of
application development. The designers of Go wanted to mitigate the
issues with the aforementioned languages while creating a new
language that is simple, safe, consistent, and predictable. As Rob
Pike puts it:

"Go is an attempt to combine the safety and performance of a


statically-typed language with the expressiveness and convenience
of a dynamically-typed interpreted language."

Go borrows ideas from different languages that came before it,


including:
Simplified but concise syntax that is fun and easy to use
A type of system that feels more like a dynamic language
Support for object-oriented programming
Statically typed for compilation and runtime safety
Compiled to native binaries for fast runtime execution
Near-zero compilation time that feels more like an interpreted
language
A simple concurrency idiom to leverage multi-core, multi-chip
machines
A garbage collector for safe and automatic memory
management

The remainder of this chapter will walk you through an introductory


set of steps that will give you a preview of the language and get you
started with building and running your first Go program. It is a
precursor to the topics that are covered in detail in the remaining
chapters of the book. You are welcome to skip to other chapters if
you already have a basic understanding of Go.
Playing with Go
Before we jump head-first into installing and running Go tools on
your local machine, let us take a look at the Go Playground. The
creators of the language have made available a simple way to
familiarize yourself with the language without installing any tools.
Known as the Go Playground, it is a web-based tool, accessible from
https://play.golang.org/, that uses an editor metaphor to let
developers test their Go skills by writing code directly within the web
browser window. The Playground gives its users the ability to
compile and run their code on Google's remote servers and get
immediate results as shown in the following screenshot:

The editor is basic, as it is meant to be used as a learning tool and a


way to share code with others. The Playground includes practical
features such as line numbers and formatting to ensure your code
remains readable as it goes beyond a few lines long. Since this is a
free service that consumes real compute resources, Google
understandably imposes a few limitations on what can be done with
Playground:

You are restricted on the amount of memory your code will


consume
Long-running programs will be killed
Access to files is simulated with an in-memory filesystem.
Network access is simulated against the loopback interface only

No IDE required
Besides the Go Playground, how is one supposed to write Go code
anyway? Writing Go does not require a fancy Integrated
Development Environment (IDE). As a matter of fact, you can get
started writing your simple Go programs with your favorite plain text
editor that is bundled with your OS. There are, however, Go plugins
for most major text editors (and full-blown IDEs) such as Atom, Vim,
Emacs, Microsoft Code, IntelliJ, and many others. There is a
complete list of editors and IDE plugins for Go which can be found at
https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins.

Installing Go
To start programming with Go on your local machine you will need to
install the Go Toolchain on your computer. At the time of writing, Go
comes ready to be installed on the following major OS platforms:

Linux
FreeBSD Unix
Mac OSX
Windows

The official installation packages are all available for 32-bit and 64-
bit Intel-based architectures. There are also official binary releases
that are available for ARM architectures as well. As Go grows in
popularity, there will certainly be more binary distribution choices
made available in the future.

Let us skip the detailed installation instructions as they will certainly


change by the time you read this. Instead, you are invited to visit
http://golang.org/doc/install and follow the directions given for your
specific platform. Once completed, be sure to test your installation is
working before continuing to use the following command:

$> go version
go version go1.6.1 linux/amd64

The previous command should print the version number, target OS,
and the machine architecture where Go and its tools are installed. If
you do not get an output similar to that preceding command, ensure
to add the path of the Go binaries to your OS's execution PATH
environment variable.

Before you start writing your own code, ensure that you have
properly set up your GOPATH. This is a local directory where your Go
source files and compiled artifacts are saved as you use the Go
Toolchain. Follow the instructions found in
https://golang.org/doc/install#testing to set up your GOPATH.

Source code examples


The programming examples presented throughout this book are
available on the GitHub source code repository service. There you
will find all source files grouped by chapters in the repository
at https://github.com/vladimirvivien/learning-go/. To save the readers
a few keystrokes, the examples use a shortened URL, that starts
with golang.fyi, that points directly to the respective file in GitHub.

Alternatively, you can follow along by downloading and unzipping (or


cloning) the repository locally. Create a directory structure in your
GOPATH so that the root of the source files is located at
$GOPATH/src/github.com/vladimirvivien/learning-go/.
Your first Go program
After installing the Go tools successfully on your local machine, you
are now ready to write and execute your first Go program. For that,
simply open your favorite text editor and type in the simple Hello
World program shown in the following code:

package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}

golang.fyi/ch01/helloworld.go

Save the source code in a file called helloworld.go anywhere inside


your GOPATH. Then use the following Go command to compile and
run the program:

$> go run helloworld.go


Hello, World!

If all goes well, you should see the message Hello, World! output on
your screen. Congratulations, you have just written and executed
your first Go program. Now, let us explore the attributes and
characteristics of the Go language at a high level.
Go in a nutshell
By design, Go has a simple syntax. Its designers wanted to create a
language that is clear, concise, and consistent with few syntactic
surprises. When reading Go code, keep this mantra in mind: what
you see is what it is. Go shies away from a clever and terse coding
style in favor of code that is clear and readable as exemplified by the
following program:

// This program prints molecular information for


known metalloids
// including atomic number, mass, and atom count
found
// in 100 grams of each element using the mole
unit.
// See http://en.wikipedia.org/wiki/Mole_(unit)
package main

import "fmt"

const avogadro float64 = 6.0221413e+23


const grams = 100.0

type amu float64

func (mass amu) float() float64 {


return float64(mass)
}

type metalloid struct {


name string
number int32
weight amu
}

var metalloids = []metalloid{


metalloid{"Boron", 5, 10.81},
metalloid{"Silicon", 14, 28.085},
metalloid{"Germanium", 32, 74.63},
metalloid{"Arsenic", 33, 74.921},
metalloid{"Antimony", 51, 121.760},
metalloid{"Tellerium", 52, 127.60},
metalloid{"Polonium", 84, 209.0},
}

// finds # of moles
func moles(mass amu) float64 {
return float64(mass) / grams
}

// returns # of atoms moles


func atoms(moles float64) float64 {
return moles * avogadro
}

// return column headers


func headers() string {
return fmt.Sprintf(
"%-10s %-10s %-10s Atoms in %.2f Grams\n",
"Element", "Number", "AMU", grams,
)
}

func main() {
fmt.Print(headers())

for _, m := range metalloids {


fmt.Printf(
"%-10s %-10d %-10.3f %e\n",
m.name, m.number, m.weight.float(),
atoms(moles(m.weight)),
)
}
}

golang.fyi/ch01/metalloids.go

When the code is executed, it will give the following output:

$> go run metalloids.go


Element Number AMU Atoms in 100.00
Grams
Boron 5 10.810 6.509935e+22
Silicon 14 28.085 1.691318e+23
Germanium 32 74.630 4.494324e+23
Arsenic 33 74.921 4.511848e+23
Antimony 51 121.760 7.332559e+23
Tellerium 52 127.600 7.684252e+23
Polonium 84 209.000 1.258628e+24
If you have never seen Go before, you may not understand some of
the details of the syntax and idioms used in the previous program.
Nevertheless, when you read the code, there is a good chance you
will be able to follow the logic and form a mental model of the
program's flow. That is the beauty of Go's simplicity and the reason
why so many programmers use it. If you are completely lost, no need
to worry, as the subsequent chapters will cover all aspects of the
language to get you going.

Functions
Go programs are composed of functions, the smallest callable code
unit in the language. In Go, functions are typed entities that can
either be named (as shown in the previous example) or be assigned
to a variable as a value:

// a simple Go function
func moles(mass amu) float64 {
return float64(mass) / grams
}

Another interesting feature about Go functions is their ability to return


multiple values as a result of a call. For instance, the previous
function could be re-written to return a value of type error in addition
to the calculated float64 value:

func moles(mass amu) (float64, error) {


if mass < 0 {
return 0, error.New("invalid mass")
}
return (float64(mass) / grams), nil
}

The previous code uses the multi-return capabilities of Go functions


to return both the mass and an error value. You will encounter this
idiom throughout the book used as a mean to properly signal errors
Other documents randomly have
different content
The Project Gutenberg eBook of Patsy
This ebook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this ebook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.

Title: Patsy

Author: H. De Vere Stacpoole

Release date: December 7, 2017 [eBook #56142]


Most recently updated: October 23, 2024

Language: English

Credits: Produced by Barry Abrahamsen and the Online


Distributed
Proofreading Team at http://www.pgdp.net (This file
was
produced from images generously made available by
The
Internet Archive)

*** START OF THE PROJECT GUTENBERG EBOOK PATSY ***


The cover image was created by the transcriber and is placed in the
public domain.
UNWIN’S 1/- NOVELS.
net
Bound in Cloth, with Picture Wrappers.

1. The Way of an Eagle. By Ethel M. Dell.


2. McGlusky the Reformer. By A. G. Hales.
3. The Trail of ’98. By Robert W. Service.
4. Ann Veronica. By H. G. Wells.
5. The Knave of Diamonds. By Ethel M. Dell.
6. The Beetle: A Mystery. By Richard Marsh.
7. Almayer’s Folly. By Joseph Conrad.
8. The Shulamite. By Alice and Claude Askew.
9. New Chronicles of Don Q. By K. and Hesketh Prichard.
10. The Canon in Residence. By Victor L. Whitechurch.
11. The Camera Fiend. By the Author of “Raffles.”
12. Monte Carlo. By Mrs. H. de Vere Stacpoole.
13. Called Back. By Hugh Conway.
14. The Stickit Minister. By S. R. Crockett.
15. The Crimson Azaleas. By H. de Vere Stacpoole.
16. My Lady of the Chimney By Alexander Irvine.
Corner.
17. Patsy. By H. deVere Stacpoole.
18. The Indiscretion of the By Anthony Hope.
Duchess.
19. By Reef and Palm. By Louis Becke.
20. Queen Sheba’s Ring. By H. Rider Haggard.
21. Uncanny Tales. By F. Marion Crawford.
22. Ricroft of Withens. By Halliwell Sutcliffe.
23. The Vultures Prey. By H. de Vere Stacpoole.
24. The Pretender. By Robert W. Service.
25. Me. A Book of Anonymous.
Remembrance.

Other Volumes in Preparation.

T. FISHER UNWIN, Ltd., 1, Adelphi Terrace, LONDON.


Patsy
by

H. de. Vere Stacpoole

London

C. Fisher Unwin Ltd

Adelphi Terrace
First Edition 1908
Second 1909
Impression
Third 1909
Impression
Fourth 1910
Impression
Fifth 1916
Impression
Sixth 1917
Impression

[All rights reserved]


CONTENTS

I. WHERE THE WILD GEESE


FLY
II. PATSY
III. THE FORM IN THE WOOD
IV. CON COGAN
V. THE MAN IN THE TREE
VI. THE HIRING OF PATSY
VII. MRS FINNEGAN’S BOY
VIII. THE BATTLE IN THE YARD
IX. A FACE AT THE WINDOW
X. THE GHOST CARRIAGE
XI. THE FIRST GUEST
XII. MR FANSHAWE
XIII. THE MEET OF THE
HOUNDS
XIV. A KISS ON THE STAIRS
XV. GOING IN TO DINNER
XVI. IN THE “SCRUBBERY”
XVII. THE STORY OF THE PIG
XVIII. AN INTERRUPTED FEAST
XIX. SHAN
XX. THE MEET OF THE
BEAGLES
XXI. MR BOXALL GETS IN THE
WAY
XXII. LOVE
XXIII. THE WILD DUCKS
XXIV. NAILING UP THE HOLLY
XXV. A POTENTIAL POET
XXVI. THE SPIRIT OF IRELAND
XXVII. MIDWINTER NIGHT’S
DREAM
XXVIII. MR LYBURN
XXIX. THE TRAP
XXX. “PUT THE DONKEY TO”
XXXI. THE FOX AND THE
HOUNDS
XXXII. THE FOX TAKES EARTH
XXXIII. BILLY CROOM
XXXIV. MR MURPHY IN EXCELSIS
XXXV. INFLUENZA
XXXVI. PREPARATIONS
XXXVII. FLIGHT
XXXVIII. THE OFF HUB
XXXIX. A MAN OF RESOURCE
PATSY
CHAPTER I

WHERE THE WILD GEESE FLY

A flock of wild geese flying across the sunset far away, remote,
fantastic, the only living things visible in a world filling with shadows,
lent the last touch of beauty to the vast and lonely moors.
“They’re makin’ for the pools of Cloyne, sir,” said the keeper.
Mr Fanshawe watched the flock pass and vanish in the amber
distance like a wreath of smoke. Away to the left, covering
themselves with night and gloom, stood the hills of Glynn, where the
golden eagle still has its eyrie, and the wild goat its home. From
there, away to the west, the great moors stretched to the hills of
Cloyne.
It was a typical Irish winter’s evening, the sky threatening and
forgetting to rain, the air damp and filled with the scent of the earth,
near things indistinct in the gathering twilight, and far things
seeming near.
From where Mr Fanshawe stood, with his pipe in his mouth and
his gun under his arm, you might have started with a brave heart to
walk to the hills of Cloyne. Ten miles distant, or at most twelve, they
seemed, those hills that lay thirty Irish miles away.
Fanshawe was staying for the hunting with Mr Trench of
Dunboyne House. He had come out to-day to have a shot at the
snipe, and he had not done badly, to judge by the weight of the bag
Micky Finn, the old keeper, was carrying.
“Well,” said the young man, refilling and lighting his pipe, “we’d
better be getting back. How far are we from the house, Micky?”
“A matter of five mile be the boggs, sir, an’ siven be the road;
which way would your ’arner be chusin’ to take?”
“The road,” said Mr Fanshawe, and, followed by Micky and the
dogs, he struck towards the high-road from Dunbeg which goes
across the moors white and straight like a chalk-line drawn by a
giant.
“You were afther askin’ me, sir, what time the letters came from
Dunbeg,” said Micky, as they stepped on to the highway. “Here’s
Larry and the letters now, comin’ as hard as he can pelt two hours
late, the blackguyard! He’s been stoppin’ to drink at Billy Sheehan’s,
or colloguing wid the girls; musha, but it’s little he cares who waits
for their letters whin the bottle’s before him.”
Mr Fanshawe shaded his eyes, and with a constriction of the heart
watched the horseman and the horse coming at a furious pace and
developing with magical speed against the sunset. The sound of the
hoofs, like the sound of castanets in the hands of a madman, came
on the breeze.
The horseman, a ragged individual with a leer on his face, no
boots on his feet, and a post-bag slung on his back, reined in when
he came level with the keeper and the gentleman, bringing his horse
literally on its haunches.
“Any letters for Mr Fanshawe, Larry?” asked the keeper.
“Begob!” said Larry, swinging the post-bag round and opening it,
“there’s letters enough for a dozen, but I’m no schollard to tell yiz
who thir for; will y’ be afther puttin’ your hand in the bag, sir, and
takin’ your chice?”
Mr Fanshawe did as he was invited. There was only one letter for
him, all the rest were for Mr Trench or members of his household.
It was not the letter he had been half expecting by every post for
weeks and weeks past, and he opened it with a gloomy brow, and
read it by the light of sunset as Larry rode on and the sound of the
hoofs died away on the high-road.
To be young, rich, healthy, good-looking, and yet unhappy! No
other magician but Love could bring about such an extraordinary
concatenation of states.
Love had done this in the case of Mr Fanshawe.
As for the letter, it was addressed from Glen Druid House, Tullagh,
Mid Meath, and it ran:
“Dear Richard,—I have only just been informed that you are staying with my
friends the Trenches, to whom, through you, I send my very kind regards.
“This house is only some forty miles from where you are now, and as I
have a small house-party coming on the 10th, the happy idea has occurred to
me that you might join us, if your engagements will permit you so to do. You
will find shooting enough to please you, I think, in the coverts, and the
O’Farrel’s hounds meet twice a week. You will also find a sincere welcome
from your old friend,
“Selina Seagrave.
“P.S.—I am here, at present, by myself. I would be quite alone were it not
that I have your cousin Robert’s children staying with me. Bob (Lord Gawdor),
Doris, and Selina my namesake.”

“Bother the children!” said Mr Fanshawe, thrusting the letter into


the pocket of his shooting coat, and little dreaming what pleasant
factors in the making of his fate those same children were to be.
He was rather fond of children, as a matter of fact, but he was in
love, and he had been deciphering Lady Seagrave’s old-fashioned
caligraphy in the hope of finding, like a flower in a wilderness, the
magical name of Violet Lestrange.
“Do you know anything of Glen Druid House, near Tullagh, Micky?”
he asked, as they trudged along together in the deepening twilight.
“Yes, sor,” replied Micky; “it’s be Castle Knock over beyant thim
hills. It was Mr Moriarty’s in the ould days. The place went to rot an’
ruin whin the ould gintleman died, but they do be tellin’ me it’s
changed hands to an ould lady from over the wather.”
“Is there good shooting?”
“Shutin’!” said Micky, speaking more from a desire to be amiable
than from absolute knowledge. “Sure, it’s not a gun you’d want
there at all, at all, for you could knock the cock phisints down wid
your fist. Phisints! ay, be jabers! an’ woodcock an’ teal; and as for
hares an’ rabbits, the groun’s is jumpin’ an’ runnin’ wid them.”
“If nothing better turns up,” said Mr Fanshawe to himself, “I’m not
sure that I won’t accept the old girl’s invitation;” and ten days later,
as you may have guessed from this preamble, he did.
CHAPTER II

PATSY

“Miss Kiligrew,” said little Lord Gawdor, looking up from his slate
and the multiplication sum on it that wouldn’t come right.
“Yes, Robert?”
“William, the page-boy, was sent away yesterday for stealing the
jam.”
“Go on with your sum,” answered the governess, who was seated
at the other end of the table helping Doris, little Lord Gawdor’s
sister, to make a map. “This is the third time you have interrupted
me with frivolous remarks. How can you expect to make your sum
come right if you do not fix your mind on your slate?”
“I will in a minit,” said his lordship; “but I want to tell you, he’d
cribbed a pot of plum jam, and he heard some one coming, and he
popped it in the copper in the back kitchen where the clothes were
boiling. Gran’ma said she never heard of an act of such—what was
it, Doris?”
“Turpentine, I think,” replied Doris, throwing back her golden hair
from her forehead, relieved to escape for a moment from the
monotony of map-making.
“‘Turpitude,’ I suppose you mean,” said Miss Kiligrew.
“Yes, that was it,” said Lord Gawdor. “What’s it mean?”
“Wickedness,” replied Miss Kiligrew. “Go on with your sum.”
“I will; but I want just to tell you, he went away yesterday, and
gran’ma said to Mrs Kinsella the cook she didn’t know what she’d do
for a page-boy, and cook said she’d try and get Patsy Rooney, the
son of the keeper, to come. He’s that red-headed boy we saw
carrying the rabbits in the park the other day. My eye!” he concluded
with a burst of laughter, “won’t he look funny in buttons!”
“Go on with your sum,” said Miss Kiligrew severely, “and don’t use
vulgar expressions before your sister. Who taught you to say that?”
“What?”
“My eye.”
“William, I b’lieve.”
“Well, it is a very good thing he was sent about his business. Go
on with your sum.”
Lord Gawdor did as he was bid, and there was silence for a while,
broken only by the squeaking of his pencil on the slate and an
occasional clicking sound from under the table, where Selina, his
youngest sister, aged five, was seated on the floor playing with a box
of bricks. They were in the day nursery, which was also the
schoolroom, of Glen Druid Park, a great old Irish country house.
Little Lord Gawdor’s mother was dead and his father was in India.
He and his sisters were living with their grandmother, Lady
Seagrave. It was three weeks before Christmas, and as Lady
Seagrave had invited a house-party, the house was in a state of
upset owing to the preparations. Downstairs rooms were being
cleaned and dusted, carpets taken up and shaken, mirrors polished,
and mattresses standing to air before huge fires.
All the fun of a general house-cleaning was going on, and it
seemed very hard to Lord Gawdor and Doris that they had to sit all
the morning doing sums and making maps instead of helping to
increase the confusion down below.
“I’ve done my sum,” said his lordship at last.
“When I have finished demarcating this frontier I will look at it,”
said Miss Kiligrew, who had a paint brush in her hand, and was in
the act of tinting with red the boundary line between Cochin China
and Somewhere-else.
“All right,” said the boy; “don’t hurry, I can wait as long as you
like.” He left the chair and, going to the window, he climbed on to
the window-seat and looked out at the park. He had scarcely been a
minute at the window when he gave a cry.
“Miss Kiligrew—come here, quick!”
The governess and Doris left the table and came to the window.
“That’s him,” said Lord Gawdor, pointing to a small figure trudging
across the park.
“Who?” asked the governess.
“Patsy Rooney,” replied he.
“How dare you call me from my work to look at such nonsense!”
cried Miss Kiligrew. “Have you no regard for the value of my time?”
“Patsy isn’t nonsense,” replied his lordship. “They say he can trap
rabbits better than his father, and he keeps the ferrits and helps to
clean the guns, and,” finished up Lord Gawdor, dropping off the
window-seat and coming back wearily to the table, “I wish to
goodness I was him!”
CHAPTER III

THE FORM IN THE WOOD

It had snowed slightly in the early morning, and enough snow lay
on the ground to take the track of a hare.
The ground told quite a lot of things to Patsy Rooney as he made
his way across Glen Druid Park from his father’s cottage to the little
village of Castle Knock, which lies beyond the park a mile to the
west, where the Tullagh road meets the road to Kilgobbin.
Out in the open spaces the great feet of the crows had left their
mark clear cut in the snow. Crossing them you could see the lesser
traces of the ringed plover, and all sorts of little birds had left tiny
footprints where the snow lay thin and white as a sheet on the
borders of the beech woods.
All kinds of rare birds came to Glen Druid Park, for the place had
been deserted so long that there was no one to trouble them, except
Patsy’s father, who was the keeper, and who lived in the keeper’s
cottage close to the Big House.
The Big House had been deserted for years, but it was deserted
no longer, for only that autumn Lady Seagrave had taken it, and she
and her family had already moved in; and there were, as I have
hinted, to be great doings at Christmas, and the whole country-side
was talking of the wonderful things that were to happen when the
“quality” arrived.
By the “quality” the country people meant the guests who were
coming over from England. Lords and ladies were reputed to be
coming, and bringing their hunting horses with them, and there was
a rumour that a bishop was coming, too. Patsy was anxious enough
to see the lords and ladies, but he was more anxious still to see the
bishop; what such a thing was like he could not in the least imagine.
He could have asked, but he didn’t: firstly, because he was a person
of such little importance that no one would have been bothered
answering him; and secondly, because he did not want to spoil the
sight when it came by knowing what it would be like beforehand. He
thought it was some sort of animal.
He was going through the beech woods now at a “sweep’s trot” to
keep himself warm. He had an old stake plucked from a fence in his
hand, and as he ran he would every now and then twirl the stake
round his head and give a “whoop” that sent the startled birds
fluttering through the branches and the rabbits scuttling through the
withered fern.
He was not going through the thick of the wood, but down a
broad drive that was the shortest cut to the village; and he did not
twirl the stake round his head and whoop for the fun of the thing,
but to keep up his courage. For the drive was just the place where
the “carriage” was always met.
Patsy’s uncle had seen the “carriage,” or said he had. So had a lot
of other people. It was a hearse with plumes, driven by a man
without a head, and it was supposed to haunt the grounds of Glen
Druid Park, sometimes even in daylight.
The horrible thing about it was that when the man without the
head saw you, he made straight for you; and, if he overtook you,
down he would get and bundle you into the vehicle and drive off,
and then you were done for.
The snow on the drive, like the snow on the grass of the park,
showed all sorts of little footprints. Tracks of hares and rabbits and
the trail of a stoat, Patsy knew and could distinguish them all.
Though he could neither read or write, he knew the habits and
names of all the wild animals and birds that were to be seen in the
woods and ways around; he knew all the tales about the fairies that
lived under the ferns in the glens, and the cluricaunes that cobbled
the fairies’ boots. He had never seen a cluricaune or a fairy, but he
believed in them, notwithstanding the fact that he had a very sharp
and practical mind where the ordinary business of life was
concerned.
Suddenly Patsy came to a stand close to the trunk of a great
beech tree. He had caught a glimpse of something in the wood on
the right-hand side of the drive.
CHAPTER IV

CON COGAN

It looked like a heap of old clothes at first sight, then he made it


out to be the figure of a man on his knees engaged in taking a
rabbit from a snare.
He was a forlorn-looking man in tatters, and with long hair that
hung over his shoulders, and, bent down there amidst the withered
ferns, and under the shadow of the tree branches, he looked not
unlike a gnome or the ghost of a robber; but he did not frighten the
boy, who recognised the figure at once as that of his uncle, Con
Cogan.
Con Cogan had once been the blacksmith at Castle Knock, but he
had sold his business and taken to bad ways, and he was now the
terror of the country-side. He had no house of his own, but just lived
as he could, sleeping in barns and hayricks, sometimes begging his
food, sometimes stealing it. He was suspected of being a highway
robber, but he had never been caught in the act; and though a good
many people knew things about him that would have sent him to
prison, they never told: not because they had any special love for
him, but because they were afraid. It was said that he had the evil
eye, and that if he cast a “black look” on a person it would be all
over with them and they would never do another day’s good.
Besides this, he always carried a blackthorn stick with knobs on it;
there were seven notches on the handle of it, and people said that
every notch stood for a man he had killed.
As the boy stood watching his uncle, the latter suddenly rose up
with the dead rabbit he had caught in his hand, and seeing his
nephew gave him good-morning.
“And where are you off to, Patsy?” said he.
“I’m going on an arrand,” replied Patsy.
“And where’s that?” asked Con, as he stuffed the rabbit into the
pocket of his old overcoat, and took up the blackthorn stick he had
dropped.
“To Castle Knock,” replied Patsy.
“And what are you going to do with yourself when you get to
Castle Knock?” asked Con.
“I’m goin’ to do me arrand.”
“Blisther you and your arrands!” shouted his uncle. “Talk English,
will yiz, or I’ll prod the sinse out of you with the end of me
blackthorn stick!”
“Ohone!” cried Patsy. “Sure, it’s skinned alive I’ll be if I’m not back
by twelve with the ca’tridges for the guns that’s waitin’ at the post-
office with the lethers for the Big House.”
“So they’ve made you the postman,” said Con.
“Bob Murphy’s laid up with the rheumatism,” replied Con’s
nephew. “Crool bad he is; and me father says to me: ‘Away wid you,
Patsy, to Castle Knock for the lethers, and ax thim has the ca’tridges
for the guns come from Dublin, and fetch thim if they have. And if
you drop wan of them it’s skinned alive you’ll be, or me name’s not
Micky Rooney.’”
“Oh, he did, did he?” said Con.
“Them’s were his words,” said Patsy; “so I must be runnin’ on me
arrand.”
“Oh, you must be runnin’ on your arrand, must you?” asked Con in
a meditative tone.
“I must.”
“And your daddy said he’d skin you alive if you weren’t quick, did
he?”
“He did.”
“Well, it’s I that’ll be skinnin’ you dead in two ticks if you don’t
hould your whisht and be doin’ my bidding.”
“Ohone!” wailed Patsy.
“Whisht!” shouted Con.
Patsy became dumb. He would have darted off like a rabbit and
tried to escape by running, only he was afraid of being brought to
earth by Con’s blackthorn stick hurled after him, for Con was a
terrible marksman, and he had been known a kill a pheasant thirty
paces off with no other weapon than his deftly-flung stick.
“I’m not wishful to get you in trouble, Patsy,” said Con, “it’s not
that I’m after; so I’ll just be walkin’ beside you on the way to Castle
Knock, and I’ll give you the slip before we catch sight of the village,
for there’s a policeman there I’m not wishful to meet, and it’s livin’ in
an old tree I am to keep out of his way. What I want to ask you is,
when are the quality comin’ to the Big House?”
“They’re comin’ before Chris’mas,” replied Patsy. “Lords and ladies
and horses and bishop and all.”
“And who’s staying at the Big House now?”
“Old Lady Seagrave and her gran’childer,” replied Patsy, as he
trotted beside his uncle.
“And how many gran’childer has the old lady?” asked Con.
“Three,” replied Patsy. “There’s the little lord; he wears putty
leggin’s and a shootin’ coat an’ all, and he only nine; and there’s
Miss Doris, wid the long gold hair, and she’s eight; then there’s
Selina.”
“What’s that?” asked Con.
“Selina.”
“And what the divil’s Selina?”
“The baby; leastways, they call her the baby. Selina’s her name,
and she’s five; she gets in the coal-scuttle when she has the chanst,
she’s that small and over-bould. Biddy Mahony is their nurse, and
she told me all about them. They eats off china, wid silver forks.”
“Silver forks, did you say?” asked Con.
“Yes, and spoons.”
“Patsy.”
“Yes?”
“It’s thrubled with thinkin’ I am.”
“And what are you thinkin’ about?” asked Patsy anxiously.
“I was thinkin’,” replied Con, “that if you were inside the Big House
and I was outside you might maybe hand me out wan or two, or
maybe three, of thim silver spoons and forks.”
“But, sure, that would be stealin’,” said Patsy.
“Who said it wouldn’t?” answered Con.
There was no reply to be made to this, so they trudged along in
silence.
They had not gone more than two hundred yards when Con left
the drive and turned down a path to the right.

You might also like