f-strings 是 python(3.6 及更高版本)的独特功能吗?
Are f-strings a unique feature to python (3.6 and higher)?
使用 f 字符串,您可以直接用一些变量值在字符串中填充 'placeholders'。反对,假设使用经常看到的 str.format() 方法。
示例:
In [1]: x=3
In [2]: y=4
In [3]: print(f'The product of {x} and {y} is {x*y}.')
The product of 3 and 4 is 12.
f-strings 的概念是否只在 python 中发现?或者是否有任何其他支持此功能的语言,也许使用不同的名称?
简短回答:否 - 并非 python 独有。在 python 中,它由 Literal String Interpolation - PEP 498
在 3.6 中引入
在 C# 中有 $ - string interpolation as shorthand for some function you would use String.Format 用于:
string val = "similar";
string s = $"This is {val}" // s == "This is similar"
// vs.
var s2 = string.Format ("This is {0}", val); // {0} = 0th param that follows
您也可以在 Javascript 中以 Template Literals 的名字找到它。特别是,请参阅表达式插值部分,了解与 OP 问题中的示例类似的示例。
shell: 从黑暗时代开始 shells 用于扩展双引号字符串中的参数(以及未引号的参数)。
Perl: Perl 有一个 shellish 的一面,并且至少从那时起在双引号字符串中有 interpolation我买了第 1 版的 Camel 书并开始学习这门语言。
我认为其他人可能更具体地说明了在 Perl 中引入字符串插值的确切日期,但我怀疑它从一开始就存在。
许多其他编程语言,尤其是那些使用 sigils 的编程语言,都共享这种插值概念。
使用 f 字符串,您可以直接用一些变量值在字符串中填充 'placeholders'。反对,假设使用经常看到的 str.format() 方法。
示例:
In [1]: x=3
In [2]: y=4
In [3]: print(f'The product of {x} and {y} is {x*y}.')
The product of 3 and 4 is 12.
f-strings 的概念是否只在 python 中发现?或者是否有任何其他支持此功能的语言,也许使用不同的名称?
简短回答:否 - 并非 python 独有。在 python 中,它由 Literal String Interpolation - PEP 498
在 3.6 中引入在 C# 中有 $ - string interpolation as shorthand for some function you would use String.Format 用于:
string val = "similar";
string s = $"This is {val}" // s == "This is similar"
// vs.
var s2 = string.Format ("This is {0}", val); // {0} = 0th param that follows
您也可以在 Javascript 中以 Template Literals 的名字找到它。特别是,请参阅表达式插值部分,了解与 OP 问题中的示例类似的示例。
shell: 从黑暗时代开始 shells 用于扩展双引号字符串中的参数(以及未引号的参数)。
Perl: Perl 有一个 shellish 的一面,并且至少从那时起在双引号字符串中有 interpolation我买了第 1 版的 Camel 书并开始学习这门语言。
我认为其他人可能更具体地说明了在 Perl 中引入字符串插值的确切日期,但我怀疑它从一开始就存在。
许多其他编程语言,尤其是那些使用 sigils 的编程语言,都共享这种插值概念。