小编Jef*_*ans的帖子

是否有一个Scala等效的Python列表解包(又名"*")运算符?

在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吗?

python scala argument-passing

22
推荐指数
3
解决办法
9500
查看次数

Gmail无法识别JSON-LD

我正在尝试测试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)

schema.org google-schemas json-ld

5
推荐指数
0
解决办法
542
查看次数

是什么导致该Scala程序在后台运行时由于tty输出而挂起?

假设我们有以下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输出,该过程将被挂起。尽管事实上命令(sleepecho)都不应该尝试从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)

shell scala tty

5
推荐指数
1
解决办法
103
查看次数

是否有广泛可用的Java的NavigableMap接口的C++版本?

在Java中,您可以使用NavigableMap,它允许您执行诸如"查找小于或等于给定值的最大键"(floorKey方法)等有用的内容.因此,如果myMap包含{1 - >"One",2 - >"Two",3 - >"Three",7 - >"Seven"},您可以调用myMap.floorKey(6)并返回键3.

在C++中,STL提供了一个map类,默认情况下会根据升序键值顺序对条目进行排序.这很好,但是如何在C++中执行类似于floorKey的操作呢?到目前为止我发现的所有引用都建议你必须手动完成(即定义一个迭代器,收敛于密钥 - 最好使用二进制搜索,然后找到下一个下键).有没有广泛可用的库函数可以做到这一点?

c++ java sorting stl map

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

标签 统计

scala ×2

argument-passing ×1

c++ ×1

google-schemas ×1

java ×1

json-ld ×1

map ×1

python ×1

schema.org ×1

shell ×1

sorting ×1

stl ×1

tty ×1