小智 180
尝试:
basename := "hello.blah"
name := strings.TrimSuffix(basename, filepath.Ext(basename))
Run Code Online (Sandbox Code Playgroud)
TrimSuffix基本上告诉它去除尾随字符串,这是带点的扩展名.
TrimSuffix文档在这里
Pau*_*ane 60
编辑:Go继续前进.请看Keith的回答.
使用path/filepath.Ext获取扩展名.然后,您可以使用扩展的长度来检索子字符串减去扩展名.
var filename = "hello.blah"
var extension = filepath.Ext(filename)
var name = filename[0:len(filename)-len(extension)]
Run Code Online (Sandbox Code Playgroud)
或者你可以使用strings.LastIndex来查找最后一个句点(.),但这可能会更脆弱,因为会有边缘情况(例如没有扩展名)filepath.Ext处理你可能需要显式编码,或者如果Go是使用除句点之外的扩展分隔符的理论O/S运行.