স্লাইসে থাকা মানগুলি দেখতে চাই। আমি কীভাবে এগুলি মুদ্রণ করতে পারি?
projects []Project
স্লাইসে থাকা মানগুলি দেখতে চাই। আমি কীভাবে এগুলি মুদ্রণ করতে পারি?
projects []Project
উত্তর:
আপনি চেষ্টা করতে পারেন %v
, %+v
বা %#v
এর ক্রিয়া চলতে চলতে FMT :
fmt.Printf("%v", projects)
যদি আপনার অ্যারে (বা এখানে স্লাইস ) থাকে struct
(যেমন Project
) থাকে তবে আপনি তাদের বিশদটি দেখতে পাবেন।
আরও নির্ভুলতার জন্য, আপনি %#v
আক্ষরিক হিসাবে গো-সিনট্যাক্স ব্যবহার করে মুদ্রণটি ব্যবহার করতে পারেন :
%v the value in a default format.
when printing structs, the plus flag (%+v) adds field names
%#v a Go-syntax representation of the value
প্রাথমিক ধরণের জন্য, fmt.Println(projects)
যথেষ্ট।
দ্রষ্টব্য: পয়েন্টারগুলির এক স্লাইজের জন্য, এটি []*Project
(পরিবর্তে []Project
), আপনি যা String()
দেখতে চান ঠিক তা প্রদর্শনের জন্য আপনি কোনও পদ্ধতি সংজ্ঞায়িত করার চেয়ে আরও ভাল (বা আপনি কেবল পয়েন্টার ঠিকানা দেখতে পাবেন)।
এই play.golang উদাহরণ দেখুন ।
for
স্লাইসে থাকা মানগুলি দেখতে আপনি একটি লুপও ব্যবহার করতে পারেন []Project
। স্ট্যাকওভারফ্লো . com/a/64292187/12817546 দেখুন ।
একটির জন্য []string
, আপনি ব্যবহার করতে পারেন strings.Join()
:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz
আমি পছন্দ করি fmt.Printf("%+q", arr)
যা মুদ্রণ করবে
["some" "values" "list"]
fmt.Printf()
ভাল, তবে কখনও কখনও আমি সুন্দর মুদ্রণ প্যাকেজ ব্যবহার করতে চাই ।
import "github.com/kr/pretty"
pretty.Print(...)
আপনি যদি কেবল বন্ধনী ছাড়াই একটি অ্যারের মান দেখতে চান তবে আপনি fmt.Sprint()
এবং এর সংমিশ্রণটি ব্যবহার করতে পারেনstrings.Trim()
a := []string{"a", "b"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]"))
fmt.Print(a)
রিটার্নস:
a b
[a b]
সচেতন থাকুন যদিও এই সমাধানের মাধ্যমে যে কোনও নেতৃস্থানীয় বন্ধনী প্রথম মান থেকে হারিয়ে যাবে এবং কোনও শেষের বন্ধনী সর্বশেষ মান থেকে হারিয়ে যাবে
a := []string{"[a]", "[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]")
fmt.Print(a)
রিটার্নস:
a] [b
[[a] [b]]
আরও তথ্যের জন্য স্ট্রিংয়ের জন্য ডকুমেন্টেশন দেখুন ri ট্রিম ()
আপনি যদি টাইপ করতে (একইরকম কিছু ["one", "two", "three"]
) ব্যবহার করতে চান তবে একই ধরণের কোনও স্লাইসে তথ্যটি দেখতে চান , এখানে একটি কোড উদাহরণ এখানে কীভাবে করবেন তা দেখানো হয়েছে:
package main
import (
"fmt"
"strings"
)
func main() {
test := []string{"one", "two", "three"} // The slice of data
semiformat := fmt.Sprintf("%q\n", test) // Turn the slice into a string that looks like ["one" "two" "three"]
tokens := strings.Split(semiformat, " ") // Split this string by spaces
fmt.Printf(strings.Join(tokens, ", ")) // Join the Slice together (that was split by spaces) with commas
}
আমি প্রেটি স্লাইস নামে একটি প্যাকেজ লিখেছিলাম। আপনি এটি স্লাইসগুলি, এবং তাদের ব্যাকিং অ্যারে ইত্যাদি কল্পনা করতে ব্যবহার করতে পারেন etc.
package main
import pretty "github.com/inancgumus/prettyslice"
func main() {
nums := []int{1, 9, 5, 6, 4, 8}
odds := nums[:3]
evens := nums[3:]
nums[1], nums[3] = 9, 6
pretty.Show("nums", nums)
pretty.Show("odds : nums[:3]", odds)
pretty.Show("evens: nums[3:]", evens)
}
এই কোডটি এই জাতীয় উত্স এবং আউটপুট যাচ্ছে:
আরও তথ্যের জন্য, দয়া করে পড়ুন: https://github.com/inancgumus/ ব্যাখ্যাtyslice
@ ভনসির উত্তরের উত্তরে প্রদর্শিত হিসাবে for
মুদ্রণের জন্য আপনি একটি লুপ ব্যবহার করতে পারেন []Project
।
package main
import "fmt"
type Project struct{ name string }
func main() {
projects := []Project{{"p1"}, {"p2"}}
for i := range projects {
p := projects[i]
fmt.Println(p.name) //p1, p2
}
}
fmt.Println(projects)
?