i := 123
s := string(i)
s 'E' है, लेकिन मैं जो चाहता हूं वह "123" है
कृपया मुझे बताएं कि मुझे "123" कैसे मिल सकता है।
और जावा में, मैं इस तरह से कर सकता हूं:
String s = "ab" + "c" // s is "abc"
मैं concat
गो में दो तार कैसे कर सकता हूं ?
i := 123
s := string(i)
s 'E' है, लेकिन मैं जो चाहता हूं वह "123" है
कृपया मुझे बताएं कि मुझे "123" कैसे मिल सकता है।
और जावा में, मैं इस तरह से कर सकता हूं:
String s = "ab" + "c" // s is "abc"
मैं concat
गो में दो तार कैसे कर सकता हूं ?
जवाबों:
strconv
पैकेज के Itoa
फ़ंक्शन का उपयोग करें ।
उदाहरण के लिए:
package main
import (
"strconv"
"fmt"
)
func main() {
t := strconv.Itoa(123)
fmt.Println(t)
}
आप स्ट्रेट को केवल +
'आईएनजी द्वारा या पैकेज के Join
फंक्शन का उपयोग करके कर सकते हैं strings
।
fmt.Sprintf("%v",value);
यदि आप जानते हैं कि विशिष्ट प्रकार का मान उदाहरण के %d
लिए संबंधित फ़ॉर्मेटर का उपयोग करता हैint
अधिक जानकारी - fmt
%d
यह ध्यान रखना दिलचस्प है कि इसके strconv.Itoa
लिए आशुलिपि है
func FormatInt(i int64, base int) string
बेस 10 के साथ
उदाहरण के लिए:
strconv.Itoa(123)
के बराबर है
strconv.FormatInt(int64(123), 10)
आप fmt.Sprintf का उपयोग कर सकते हैं
उदाहरण के लिए http://play.golang.org/p/bXb1vjYbyc देखें ।
इस मामले में दोनों strconv
और fmt.Sprintf
एक ही काम करते हैं लेकिन strconv
पैकेज के Itoa
फ़ंक्शन का उपयोग करना सबसे अच्छा विकल्प है, क्योंकि fmt.Sprintf
रूपांतरण के दौरान एक और वस्तु आवंटित करें।
यहाँ बेंचमार्क की जाँच करें: https://gist.github.com/evalphobia/caee1602969a640a4530
उदाहरण के लिए https://play.golang.org/p/hlaz_rMa0D देखें ।
fmt.Sprintf
और strconv.iota
और ऊपर डेटा से पता चलता है जरा भी तेजी से कम जीसी प्रभाव के साथ होने के लिए उपयोग में आसानी के मामले में समान हैं, ऐसा लगता है कि iota
जब एक पूर्णांक परिवर्तित करने की जरूरत है सामान्य रूप में इस्तेमाल किया जाना चाहिए।
ठीक है, उनमें से अधिकांश ने आपको कुछ अच्छा दिखाया है। Let'me तुम्हें यह दे:
// ToString Change arg to string
func ToString(arg interface{}, timeFormat ...string) string {
if len(timeFormat) > 1 {
log.SetFlags(log.Llongfile | log.LstdFlags)
log.Println(errors.New(fmt.Sprintf("timeFormat's length should be one")))
}
var tmp = reflect.Indirect(reflect.ValueOf(arg)).Interface()
switch v := tmp.(type) {
case int:
return strconv.Itoa(v)
case int8:
return strconv.FormatInt(int64(v), 10)
case int16:
return strconv.FormatInt(int64(v), 10)
case int32:
return strconv.FormatInt(int64(v), 10)
case int64:
return strconv.FormatInt(v, 10)
case string:
return v
case float32:
return strconv.FormatFloat(float64(v), 'f', -1, 32)
case float64:
return strconv.FormatFloat(v, 'f', -1, 64)
case time.Time:
if len(timeFormat) == 1 {
return v.Format(timeFormat[0])
}
return v.Format("2006-01-02 15:04:05")
case jsoncrack.Time:
if len(timeFormat) == 1 {
return v.Time().Format(timeFormat[0])
}
return v.Time().Format("2006-01-02 15:04:05")
case fmt.Stringer:
return v.String()
case reflect.Value:
return ToString(v.Interface(), timeFormat...)
default:
return ""
}
}
package main
import (
"fmt"
"strconv"
)
func main(){
//First question: how to get int string?
intValue := 123
// keeping it in separate variable :
strValue := strconv.Itoa(intValue)
fmt.Println(strValue)
//Second question: how to concat two strings?
firstStr := "ab"
secondStr := "c"
s := firstStr + secondStr
fmt.Println(s)
}