标签: string-interpolation

有没有办法在 C# 中将插值字符串拆分为多行,同时在运行时执行相同的性能

我一直在与同事讨论格式化以下代码的最佳方法。

return $" this is a really long string.{a} this is a really long string. this is a really long string. this is a really long string. this is a really long string. this is a really long string. this is a really long string. this is a really long string. this is a really long string. this is a really long string. this is a really long string. this is a really long string.{b} this is a really long …
Run Code Online (Sandbox Code Playgroud)

c# string string-interpolation

3
推荐指数
1
解决办法
892
查看次数

Haskell QuasiQuotes Text.RawString.QQ 插值

我怎样才能像这样插值:

{-# LANGUAGE QuasiQuotes #-}
import Text.RawString.QQ

myText :: Text -> Text
myText myVariable = [r|line one
line two
line tree
${ myVariable }
line five|]

myText' :: Text
myText' = myText "line four"
Run Code Online (Sandbox Code Playgroud)

${ myVariable }作为文字打印,而不是插值,在这种情况下我可以做类似的事情来插值吗?

haskell string-interpolation quasiquotes

3
推荐指数
1
解决办法
609
查看次数

jq --arg 变量在 select() 中用引号引起来的字符串

我想要select()一个基于包含 jq 变量 ( $ARCH) 的字符串的对象,使用-argjq 参数。这是从 Google 查找“ ”时的用例/bin/linux/$ARCH/kubeadm......

# You may need to install `xml2json` IE 
# sudo gem install --no-rdoc --no-ri xml2json and run the script I wrote to do the xml2json:
Run Code Online (Sandbox Code Playgroud)
#!/usr/bin/ruby
# Written by Jim Conner
require 'xml2json'

xml = ARGV[0]

begin
  if xml == '-'
    xdata = ARGF.read.chomp
    puts XML2JSON.parse(xdata)
  else
    puts XML2JSON.parse(File.read(file2parse).chomp)
  end
rescue => e
  $stderr.puts 'Unable to comply: %s' % [e.message]
end
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令:

curl …
Run Code Online (Sandbox Code Playgroud)

json string-interpolation command-line-arguments jq

3
推荐指数
1
解决办法
2171
查看次数

如何将@ARGV 的元素分配给 $variable,然后打印它?

以各种方式经常被问到,但是,我将再次问,因为我不完全理解这个问题的应用@ARGV并且因为我没有找到这个问题的答案(或者,更有可能的是,我不理解答案和已经提供了解决方案)。

问题是,为什么没有从命令行读取任何内容?另外,我如何解密错误消息,

在连接 (.) 或 string at ... 中使用未初始化的值 $name ?

我知道这@ARGV是一个存储命令行参数(文件)的数组。我也明白它可以像任何其他数组一样操作(记住索引$ARGV[0]与文件名变量的命令行功能不同,$0)。我知道在 while 循环中,菱形运算符将自动读取asshift的第一个元素,并在输入处读取一行。@ARGV$ARGV[ ]

我不明白的是如何将 的元素分配给@ARGV标量变量,然后打印数据。例如(取自学习 Perl 的代码概念),

my $name = shift @ARGV;

while (<>) {
    print “The input was $name found at the start of $_\n”;
    exit;
}
Run Code Online (Sandbox Code Playgroud)

就代码而言,$name的输出为空白;如果我省略shift()$name将输出0,正如我认为应该的那样,处于标量上下文中,但它没有回答为什么来自命令行的输入不被接受的问题。您的见解将不胜感激。

谢谢你。

perl string-interpolation argv command-line-arguments

3
推荐指数
1
解决办法
193
查看次数

PowerShell 中的可扩展字符串是什么

在PowerShell的文档中,我遇到了表达式可扩展字符串

参数模式旨在解析 shell 环境中命令的参数和参数。所有输入都被视为可扩展字符串,除非它使用以下语法之一:

不幸的是,我无法找到可扩展字符串的定义,我的问题是: PowerShell 中的可扩展字符串是什么?

powershell grammar string-interpolation

3
推荐指数
1
解决办法
840
查看次数

为什么查询中的 Snowflake 变量绑定会抛出表名错误而不是整数错误?

我正在遵循Snowflake Python Connector文档进行变量绑定以避免 SQL 注入。我成功地使用以下凭据字典建立了数据库连接:

import snowflake.connector

CONN = snowflake.connector.connect(
    user=snowflake_creds['user'],
    password=snowflake_creds['password'],
    account=snowflake_creds['account'],
    warehouse=snowflake_creds["warehouse"],
    database=snowflake_creds['database'],
    schema=snowflake_creds['schema'],
)
cur = CONN.cursor(snowflake.connector.DictCursor)
Run Code Online (Sandbox Code Playgroud)

以下块工作正常,我返回查询结果,对表名称进行硬编码并使用标准format绑定:

command = ("SELECT * FROM TEST_INPUT_TABLE WHERE batch_id = %s")
bind_params = (2)
results = cur.execute(command % bind_params).fetchall()
Run Code Online (Sandbox Code Playgroud)

类似地,使用绑定,该块可以正常工作pyformat

command = ("SELECT * FROM TEST_INPUT_TABLE WHERE batch_id = %(id)s")
bind_params = {"id": 2}
results = cur.execute(command, bind_params).fetchall()
Run Code Online (Sandbox Code Playgroud)

但以下两个块都会产生 a ProgrammingError(粘贴在第二个块下面):

command = ("SELECT * FROM %s WHERE batch_id = %s")
bind_params = …
Run Code Online (Sandbox Code Playgroud)

sql-injection string-interpolation snowflake-cloud-data-platform

3
推荐指数
1
解决办法
2882
查看次数

来自数据库的字符串插值格式的字符串在 C# 代码中使用它

例如,我有一个从数据库检索到的字符串。

string a = "The quick brown {Split[0]}   {Split[1]} the lazy dog";
string b = "jumps over";
Run Code Online (Sandbox Code Playgroud)

然后我将执行这段代码。

String[] Split= b.Split(' ');
String c= $"{a}";
Console.Writeline(c):
Run Code Online (Sandbox Code Playgroud)

这个方法行不通。您知道这如何成为可能吗?我感谢您的帮助。^-^

c# string-interpolation formattablestring

3
推荐指数
1
解决办法
588
查看次数

Razor 中的 .NET Core 字符串插值错误?

我不明白为什么在 .cshtml/Razor 页面中输入时不会编译:

@($"{"\""}") // <-- does not work

@($"{"'"}") // <-- does not work

@($"{"a"}") // <-- works
Run Code Online (Sandbox Code Playgroud)

错误指出:

RZ1000:未终止的字符串文字。以引号 (") 开头的字符串必须在行结束之前终止。但是,以 @ 和引号 (@") 开头的字符串可以跨越多行。

CS1002:;预期的

CS1513: } 预期

看来非引号字符工作正常,但双引号或单引号字符会破坏 Razor 解析内插字符串的能力,即使引号字符已转义也是如此。

所有示例在普通 .cs 文件中都可以正常工作:

public sealed class Test
{
    public string x = $"{"\""}";
    public string y = $"{"'"}";
    public string z = $"{"a"}";
}
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?

我的环境如下:

.NET SDK:v7.0.102

.NET运行时:v7.0.2

C#:v11(预览)

Visual Studio 社区 2022(64 位):v17.4.4

在此输入图像描述

c# compiler-errors string-interpolation visual-studio razor

3
推荐指数
1
解决办法
400
查看次数

Typescript中的字符串插值,将“占位符”替换为变量

我似乎找不到关于该主题的足够清晰的答案,所以我问一个问题:

例如,在C#中,我可以执行以下操作:

var text = "blah blah";
var strTest = String.Format("This is a {0}", text); //output: 'This is a blah blah'
Run Code Online (Sandbox Code Playgroud)

我将如何在Typescript中实现这一目标?

用法:

我正在从environment.ts文件加载URL,此字符串URL将需要包含占位符,并且在我的服务层中,将占位符替换为需要传递的实际参数。

string-interpolation typescript angular

2
推荐指数
2
解决办法
6953
查看次数

字符串插值中需要一个恒定值

我的代码如下

static string Foo(string str, int width)
{
    return $"{str,width}";
}
Run Code Online (Sandbox Code Playgroud)

编译器不允许我使用该width变量。如何将其传递给方法?

c# string-interpolation

2
推荐指数
1
解决办法
85
查看次数