小编use*_*956的帖子

如何将更多(和递归)类型推广?

Scala的Either[A, B]类型是或者是A或者B.

是否有一个概括,让我定义如下的东西?

type JSON = Either[String, Int, Float, List[JSON], Map[String, JSON]]
Run Code Online (Sandbox Code Playgroud)

scala either type-alias

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

程序集编译错误(gcc4.2.4 = win,gcc4.3.3 = fail)

最近,我们的代码升级为gcc4.3.3gcc4.2.4.

void testAndSet(  volatile int*  s, int* val )
{
   __asm__ __volatile__ ( "btsl   $0, %0\n   "
           "jc   bitSet\n   "
           "movl   $0, %1\n   "
           "jmp   returnVector\n"
           "bitSet:\n   "
           "movl   $1, %1\n"
           "returnVector: " : "=m"(*s), "=m"(*val) );
}
Run Code Online (Sandbox Code Playgroud)

我们的代码现在失败,出现以下错误,

lock.cxx: Assembler messages:
lock.cxx:59: Error: symbol `bitSet' is already defined
lock.cxx:61: Error: symbol `returnVector' is already defined
lock.cxx:59: Error: symbol `bitSet' is already defined
lock.cxx:61: Error: symbol `returnVector' is already defined
Run Code Online (Sandbox Code Playgroud)

那些符号在其他任何地方都找不到.(重命名它们会导致新名称出现相同的错误).

怎么了?为什么我会错误两次?

c assembly

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

为什么Numeric对二元进行不同的处理?

怎么了?

import Numeric.Implicits._

def myAdd[T: Numeric](x: T, y: T) = x + y   // Works
myAdd(1,2)

def myInc[T: Numeric](x: T) = x + 1   // Fails at x: could not find implicit value for parameter num: scala.math.Numeric[Any]
myInc(9)
Run Code Online (Sandbox Code Playgroud)

斯卡拉2.10

与x + 1 - > Numeric + Int有关吗?

scala

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

scala:如何在不调用的情况下在某处传递0-arg函数?

def myfunc():Int = 10
class FuncUser( val func:()=>Int )
val i = new FuncUser( myfunc ) 
Run Code Online (Sandbox Code Playgroud)

这会失败,因为myfunc会立即被评估 - 它的类型是Int,not()=> Int如何直接将myfunc传递给FuncUser构造函数?

此外,这有效:

val y4:()=>Int = myfunc
val j = new FuncUser( y4 )
Run Code Online (Sandbox Code Playgroud)

但我对第一行成功的原因感到困惑?为什么myfunc在第二个例子中也没有立即评估?

scala

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

scala避免返回,同时仍然在执行迭代

当我写下以下内容时,IntelliJ的scalastyle对我很不满.它不喜欢我写的回报.

def hasAnnotation(symbol: Symbol, annotation: Type): Boolean = {
  for (a <- symbol.annotations) {
    if ( a.tpe =:= annotation ) return true  // AVOID USING RETURN!!!
  }
  false
}
Run Code Online (Sandbox Code Playgroud)

为什么要添加回归邪恶?

如何在不返回的情况下快速迭代?

scala

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

可以让 scala 需要一个非 Nothing 的泛型方法参数并返回类型安全

在 Scala 中,如果泛型方法的调用者省略了显式指定类型参数,那么糟糕的事情就会大打折扣。例如:

class Expression[+T] // Will have eval():T method, so +T

class NothingTest {

  def makey[T](): Expression[T] = null

  def needsBool(b: Expression[Boolean]): Unit = {}

  var b: Expression[Boolean] = null
  var n = makey()  // : Expression[Nothing]

  b=n  // Yikes.

  needsBool(n)  // :-/ Supplied Expression[Nothing] ... not a Expression[Nothing]
}
Run Code Online (Sandbox Code Playgroud)

应该makey()(eg makey[Boolean]())提供一个类型参数,但是在这种情况下我忘记了程序已编译(顺便说一下,这非常容易做到)。

该程序最终将失败needsBool(省略了实现),它没有接收到一个Expression[Booolean]对象 - 它反而得到了一个Expression[Nothing]对象。Scala 的文档说 Nothing 是所有类型的子类,这看起来异常粗鲁,并且无论出现在哪里都肯定会破坏类型安全。

所以,为了重新引入一些类型安全,我可以:

  • 防止makey返回 Expression[Nothing] 但要求提供类型参数?(我怀疑不是),或
  • 阻止needsBool …

generics scala

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

减少之前如何避免大的中间结果?

我在火花工作中遇到一个令我惊讶的错误:

 Total size of serialized results of 102 tasks (1029.6 MB) is
 bigger than spark.driver.maxResultSize (1024.0 MB)
Run Code Online (Sandbox Code Playgroud)

我的工作是这样的:

def add(a,b): return a+b
sums = rdd.mapPartitions(func).reduce(add)
Run Code Online (Sandbox Code Playgroud)

rdd有~500个分区,func获取该分区中的行并返回一个大数组(一个1.3M双精度或~10Mb的numpy数组).我想总结所有这些结果并返回它们的总和.

Spark似乎在内存中保存了mapPartitions(func)的总结果(大约5gb),而不是以递增方式处理它,这需要大约30Mb.

而不是增加spark.driver.maxResultSize,有没有办法逐步执行reduce?


更新:实际上我有点惊讶的是,更多的两个结果都记在内存中.

mapreduce apache-spark rdd

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

numba 类的序列化

有没有好的序列化/反序列化(pickling)numba 类的模式?以下内容让我

    other = pkl.loads(pkl.dumps(jc))
  File "/usr/lib/python2.7/copy_reg.py", line 71, in _reduce_ex
    state = base(self)
TypeError: function takes at most 0 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

我想参加很多课程。

@jitclass([
    ('uncal_minRange', float64),
    ('uncal_maxRange', float64),
    ('nSize', int64),
    ('cal_percent', int64),
])
class SomeJitClass(object):
    def __init__(self, uncal_minRange=0.0, uncal_maxRange=0.0, nSize=0, cal_percent=0.0 ):
        self.uncal_minRange   = uncal_minRange
        self.uncal_maxRange   = uncal_maxRange
        self.cal_percent      = cal_percent
        self.nSize = nSize

    def compare(self, other):
        return self.uncal_minRange == other.uncal_minRange and \
            self.uncal_maxRange == other.uncal_maxRange and \
            self.cal_percent == other.cal_percent and \
            self.nSize == other.nSize


import unittest
class …
Run Code Online (Sandbox Code Playgroud)

python numba

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

如何找到为 flutter Web 应用程序提供服务的 URL?

我希望我的网络应用程序可以在以下位置使用:

  http://example.com/ui/      # My flutter web application
  http://example.com/api/...  # REST endpoints
Run Code Online (Sandbox Code Playgroud)

如何找到下载应用程序的 URL ( ),以便从中http://example.com/ui/生成 URL ?http://example.com/api/

我不想将其烘焙example.com到 Web 应用程序中,因为我们在 CI 期间部署到许多具有不同域名的集群。

flutter flutter-web

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

在 BoxDecoration 上为容器添加 labelText(作为 TextField)

TextField 有一种很好的方法可以在其框装饰上放置文本标签。

出去

和:

TextField(
        onTap: onTap,
        controller: controller,
        decoration: InputDecoration(
          labelText: "XP",
          border: OutlineInputBorder(
            borderRadius: BorderRadius.circular(50.0),
          ),
        ));
Run Code Online (Sandbox Code Playgroud)

有没有办法为容器的其他 BoxDecoration 实现相同的目标?例如,我想指定标签“XP”:

        Container(
          decoration: BoxDecoration(
            borderRadius: BorderRadius.all(Radius.circular(5)),
            border: Border.all(color: color, width: 2.0),
            labelText: Text("XP"),   // No such attribute
          ),
          child: child,
        ),
Run Code Online (Sandbox Code Playgroud)

...但 Flutter 不提供 labelText for BoxDecoration(only for InputDecoration)。

flutter

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