123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // Copyright 2012 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package main
- import (
- "io/ioutil"
- "regexp"
- )
- func AppendByte(slice []byte, data ...byte) []byte {
- m := len(slice)
- n := m + len(data)
- if n > cap(slice) { // if necessary, reallocate
- // allocate double what's needed, for future growth.
- newSlice := make([]byte, (n+1)*2)
- copy(newSlice, slice)
- slice = newSlice
- }
- slice = slice[0:n]
- copy(slice[m:n], data)
- return slice
- }
- // STOP OMIT
- // Filter returns a new slice holding only
- // the elements of s that satisfy fn.
- func Filter(s []int, fn func(int) bool) []int {
- var p []int // == nil
- for _, i := range s {
- if fn(i) {
- p = append(p, i)
- }
- }
- return p
- }
- // STOP OMIT
- var digitRegexp = regexp.MustCompile("[0-9]+")
- func FindDigits(filename string) []byte {
- b, _ := ioutil.ReadFile(filename)
- return digitRegexp.Find(b)
- }
- // STOP OMIT
- func CopyDigits(filename string) []byte {
- b, _ := ioutil.ReadFile(filename)
- b = digitRegexp.Find(b)
- c := make([]byte, len(b))
- copy(c, b)
- return c
- }
- // STOP OMIT
- func main() {
- // place holder; no need to run
- }
|