]> Cypherpunks repositories - gostls13.git/commitdiff
string slicing is efficient so remove base and bounds arguments from RuneCountInString
authorRob Pike <r@golang.org>
Tue, 5 May 2009 05:12:13 +0000 (22:12 -0700)
committerRob Pike <r@golang.org>
Tue, 5 May 2009 05:12:13 +0000 (22:12 -0700)
R=rsc
DELTA=6  (1 added, 0 deleted, 5 changed)
OCL=28242
CL=28256

src/lib/strings.go
src/lib/utf8.go
src/lib/utf8_test.go

index 5ce4a8dae37047ed2c5dca142d1543c977902a87..33adab2499e8a7ac459aaf61f0b277c41e8ddd57 100644 (file)
@@ -10,7 +10,7 @@ import "utf8"
 // Explode splits s into an array of UTF-8 sequences, one per Unicode character (still strings).
 // Invalid UTF-8 sequences become correct encodings of U+FFF8.
 func Explode(s string) []string {
-       a := make([]string, utf8.RuneCountInString(s, 0, len(s)));
+       a := make([]string, utf8.RuneCountInString(s));
        j := 0;
        var size, rune int;
        for i := 0; i < len(a); i++ {
@@ -24,7 +24,7 @@ func Explode(s string) []string {
 // Count counts the number of non-overlapping instances of sep in s.
 func Count(s, sep string) int {
        if sep == "" {
-               return utf8.RuneCountInString(s, 0, len(s))+1
+               return utf8.RuneCountInString(s)+1
        }
        c := sep[0];
        n := 0;
index ff55df80210b6076af0d662def66abd944a6ae24..5ce59894b50d0cf59256c57d7b5a232bd2feb1ea 100644 (file)
@@ -273,8 +273,9 @@ func RuneCount(p []byte) int {
 }
 
 // RuneCountInString is like RuneCount but its input is a string.
-func RuneCountInString(s string, i int, l int) int {
-       ei := i + l;
+func RuneCountInString(s string) int {
+       ei := len(s);
+       i := 0;
        n := 0;
        for n = 0; i < ei; n++ {
                if s[i] < RuneSelf {
index 1f29cb82d926c763cc0ec633700f7239a5f840c1..3ba5ee2b8311904ab15e9dacf4a82d61211358e4 100644 (file)
@@ -169,7 +169,7 @@ var runecounttests = []RuneCountTest {
 func TestRuneCount(t *testing.T) {
        for i := 0; i < len(runecounttests); i++ {
                tt := runecounttests[i];
-               if out := utf8.RuneCountInString(tt.in, 0, len(tt.in)); out != tt.out {
+               if out := utf8.RuneCountInString(tt.in); out != tt.out {
                        t.Errorf("RuneCountInString(%q) = %d, want %d", tt.in, out, tt.out);
                }
                if out := utf8.RuneCount(bytes(tt.in)); out != tt.out {