mirror of
				https://github.com/golang/go.git
				synced 2025-11-04 10:40:57 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// 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 f()
 | 
						|
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
 | 
						|
}
 |