Syntax 在Go中以字符串文字捕获变量?

Syntax 在Go中以字符串文字捕获变量?,syntax,go,string-interpolation,Syntax,Go,String Interpolation,在Ruby中,我可以直接捕获字符串文本中的变量,如bash SRCDIR = "aaa" DSTDIR = "bbb" puts "SRCDIR = #{SRCDIR}" puts "DSTDIR = #{DSTDIR}" 这是一个简单而微小的特性,但是让它感觉像一个shell脚本非常好。如果我必须编写一个复杂的shell脚本,这将非常有帮助,因为这消除了替换、连接和格式表达式的需要 Go有这样的东西吗?如果有,如何使用它?没有格式字符串;通常的方法是使用fmt.Printf或f

在Ruby中,我可以直接捕获字符串文本中的变量,如
bash

SRCDIR  =   "aaa"
DSTDIR  =   "bbb"

puts "SRCDIR = #{SRCDIR}"
puts "DSTDIR = #{DSTDIR}"
这是一个简单而微小的特性,但是让它感觉像一个shell脚本非常好。如果我必须编写一个复杂的shell脚本,这将非常有帮助,因为这消除了替换、连接和格式表达式的需要


Go有这样的东西吗?如果有,如何使用它?

没有格式字符串;通常的方法是使用
fmt.Printf
fmt.Sprintf

srcdir := "aaa"
dstdir := "bbb"

// separated out Sprintf and Println for clarity
fmt.Println(fmt.Sprintf("SRCDIR = %s", srcdir))
fmt.Println(fmt.Sprintf("DSTDIR = %s", dstdir))

// could be shortened if you're just printing them
fmt.Printf("SRCDIR = %s\n", srcdir)
fmt.Printf("DSTDIR = %s\n", dstdir)

韦斯说的。我应该补充一点,如果您使用的是自定义类型,那么您可以定义一个方法,该方法上有签名
String()String
(基本上使它们满足接口),然后将这些类型的实例直接传递给
fmt
包中需要字符串的函数,例如
fmt.Println()
。这方面的简单介绍可以在中找到。

您必须像在JS中一样使用+运算符

梅因,加油

主程序包
输入“fmt”
func main(){
电影语录:=`“你在掷硬币时损失最多的是什么?”`
语句:=`反勾号允许双引号,`+movieQuote+`,以及单引号撇号`
fmt.Println(“电影报价:”,电影报价)
fmt.Println(“声明:”,声明)
}

go运行main.go
输出:

movieQuote:“你在掷硬币时损失最多的是什么?”
声明:背面的勾号允许双引号,“你在掷硬币时损失最多的是什么?”和单引号撇号
GQL查询
主程序包
进口(
“github.com/gookit/color”
)
常数(
offerInfo字符串=`{
身份证件
名称
描述
logoURL
选择加入{
身份证件
名称
描述
}
}`
)
func queryalOffers()字符串{
返回`{offer`+offerInfo+`}`
}
func QueryOfferByID(id字符串)字符串{
返回`{
offer(id:“`+string(id)+`”)`+offerInfo++`}`
}
func main(){
查询者:=查询者()
颜色.Cyan.Println(queryAllOffers)
offerID:=“0001”
queryOfferByID:=queryOfferByID(offerID)
color.Blue.Println(queryOfferByID)
}
输出:查询忠诚者 输出:queryOfferById
Go的目标不是成为一种脚本语言。如果您希望生成参数化文本,请查看包
text/template
。另外值得注意的是,您可以在字符串中指定索引位置,而不是按照与参数完全相同的顺序进行格式化。e、 g.-
fmt.Printf(“dstdir=%[2]srcdir=%[1]s”,srcdir,dstdir)
{
  offer {
    id
    name
    description
    logoURL
    opt_ins {
      id
      name
      description
    }
  }
}
{
  offer(id: "0001") {
    id
    name
    description
    logoURL
    opt_ins {
      id
      name
      description
    }
  }
}