在Python中,我们有星号(或"*"或"unpack")运算符,它允许我们解压缩列表以方便用于传递位置参数.例如:
range(3, 6)
args = [3, 6]
# invokes range(3, 6)
range(*args)
Run Code Online (Sandbox Code Playgroud)
在这个特定的例子中,它不会节省太多的输入,因为range只需要两个参数.但你可以想象,如果有更多的参数range,或者args是从输入源读取,从另一个函数返回等等,那么这可能会派上用场.
在Scala中,我找不到相应的东西.请考虑在Scala交互式会话中运行以下命令:
case class ThreeValues(one: String, two: String, three: String)
//works fine
val x = ThreeValues("1","2","3")
val argList = List("one","two","three")
//also works
val y = ThreeValues(argList(0), argList(1), argList(2))
//doesn't work, obviously
val z = ThreeValues(*argList)
Run Code Online (Sandbox Code Playgroud)
除了使用的方法之外,还有更简洁的方法val y吗?
我正在尝试测试Gmail在HTML邮件中处理嵌入式JSON-LD的功能,以便在收件箱视图中显示相关操作,此处将介绍其介绍.我已向自己发送了一条消息(使用Python API),我希望Gmail能够呈现我的View Action,此处显示了一个示例.然而,一切都没有发生.我期待看到"查看文件"的链接,类似于将为航班预订显示的链接等.
我试图了解我的特定JSON-LD内容是否存在问题,或者我是否尝试执行不受支持的操作.嵌入的相关JSON-LD段<body>是:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "CreativeWork",
"@id": "http://my-site.com/file/1",
"additionalType": "http://www.productontology.org/id/Computer_file",
"name": "My File",
"description": "View this file",
"url": "http://my-site.com/file/1",
"action": {
"@type": "ViewAction",
"url": "http://my-site.com/file/1",
"name": "View File"
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果电子邮件编码的方式存在问题,这里是原始格式(个人信息编辑)
Received: from 874510238733-ktbae5ftk223du75th86q0uua7i7rp5v.apps.googleusercontent.com
named unknown
by gmailapi.google.com
with HTTPREST;
Fri, 6 Mar 2015 14:54:52 -0800
Content-Type: multipart/alternative;
boundary="===============5111695568485418487=="
MIME-Version: 1.0
to: ****@gmail.com
subject: A file has been shared to your email
Date: Fri, 6 Mar …Run Code Online (Sandbox Code Playgroud) 假设我们有以下Scala(2.12)。它使用ProcessBuilder执行非常简单的命令集(a sleep,后跟echo)。该程序还捕获stdout和stderr,并将所有行(带有那些前缀)打印到Scala进程本身的stdout或stderr。
import scala.sys.process._
import scala.language.postfixOps
object BackgroundProcessRedirect {
def main(args: Array[String]) = {
val output = "sleep 5" #&& s"echo myoutput" lineStream_! ProcessLogger(line => System.err.println(s"stderr: $line"))
output.foreach(line => System.out.println(s"stdout: $line"))
}
}
Run Code Online (Sandbox Code Playgroud)
在zsh5.6.2或GNU bash4.4.23(1)中的OS X上执行时,除非附加了stdin,否则由于tty输出,该过程将被挂起。尽管事实上命令(sleep和echo)都不应该尝试从stdin读取,但仍会发生这种情况。
# first, compile
scalac BackgroundProcessRedirect.scala
# now, run as a background process, redirecting stdout and stderr to files
scala BackgroundProcessRedirect >/tmp/scala.out 2>/tmp/scala.err &
# after 5 seconds, the process is suspended, as …Run Code Online (Sandbox Code Playgroud) 在Java中,您可以使用NavigableMap,它允许您执行诸如"查找小于或等于给定值的最大键"(floorKey方法)等有用的内容.因此,如果myMap包含{1 - >"One",2 - >"Two",3 - >"Three",7 - >"Seven"},您可以调用myMap.floorKey(6)并返回键3.
在C++中,STL提供了一个map类,默认情况下会根据升序键值顺序对条目进行排序.这很好,但是如何在C++中执行类似于floorKey的操作呢?到目前为止我发现的所有引用都建议你必须手动完成(即定义一个迭代器,收敛于密钥 - 最好使用二进制搜索,然后找到下一个下键).有没有广泛可用的库函数可以做到这一点?