What is the most efficient way to print an array in golang

王林
Release: 2024-02-10 09:30:23
forward
581 people have browsed it

What is the most efficient way to print an array in golang

In Golang, the most efficient way to print an array is to use the Println function in the fmt package. By passing an array as a parameter to the Println function, it automatically formats and prints the contents of the array. This method is very simple and efficient and works for any size array. In addition, Golang also provides some other methods for printing arrays, such as using the Join function in the strings package to connect array elements into strings and then printing them out, or using a loop to traverse the array and print each element. But relatively speaking, using the Println function directly is the simplest and most effective method. Whether during development or debugging, printing arrays is a very common operation. Mastering the most effective method can improve development efficiency.

Question content

I am new to programming and would like to know more about built-in functions:

This is the program:

func main() { start := time.now() fmt.println(os.args) fmt.println(time.since(start)) }
Copy after login

and its output:

[a b c d e f g h i j k l m n o p] 124.009µs

This is my for loop:

package main import ( "fmt" "os" "time" ) func main() { start := time.Now() var s string for i:=0; i
        
Copy after login

The output is as follows:

/tmp/go-build994847456/b001/exe/main a b c d e f g h i j k l m n o p 25.71μs

I wish the built-in functions in the standard library would be faster.

Will slicing reduce the efficiency of my code?

Should I use a for loop or the standard libraryfmt.println?

I am also confusedstrings.join(os.args\[1:\], " ")How to perform 74.293μs

Solution

Use benchmark :

var slice = []string{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"} func benchmarkfmt(b *testing.b) { b.reportallocs() for n := 0; n < b.n; n++ { _ = fmt.sprint(slice) } } func benchmarkstringconcat(b *testing.b) { b.reportallocs() for n := 0; n < b.n; n++ { var str string for _, s := range slice { str += s + " " } } } func benchmarkstringsbuilder(b *testing.b) { b.reportallocs() for n := 0; n < b.n; n++ { var l int for _, s := range slice { l += len(s) } var sb strings.builder sb.grow(l + len(slice)*len(" ")) for _, s := range slice { sb.writestring(s) sb.writestring(" ") } _ = sb.string() } } func benchmarkstringsjoin(b *testing.b) { b.reportallocs() for n := 0; n < b.n; n++ { _ = strings.join(slice, " ") } }
Copy after login
BenchmarkFMT BenchmarkFMT-8 734088 1633 ns/op 616 B/op 34 allocs/op BenchmarkStringConcat BenchmarkStringConcat-8 1290666 919.1 ns/op 1200 B/op 32 allocs/op BenchmarkStringsBuilder BenchmarkStringsBuilder-8 6074888 198.6 ns/op 64 B/op 1 allocs/op BenchmarkStringsJoin BenchmarkStringsJoin-8 4941542 241.7 ns/op 64 B/op 1 allocs/op PASS
Copy after login

The above is the detailed content of What is the most efficient way to print an array in golang. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!