小编bor*_*rck的帖子

从字符串到数字类型的快速安全转换

这将是一个快速的一个安全的字符串转换为数值型的方式,而当转换失败提供一个默认值?

我尝试使用通常推荐的方法,即使用Exceptions:

implicit class StringConversion(val s: String) {

  private def toTypeOrElse[T](convert: String=>T, defaultVal: T) = try {
    convert(s)
  } catch {
    case _: NumberFormatException => defaultVal
  }

  def toShortOrElse(defaultVal: Short = 0) = toTypeOrElse[Short](_.toShort, defaultVal)
  def toByteOrElse(defaultVal: Byte = 0) = toTypeOrElse[Byte](_.toByte, defaultVal)
  def toIntOrElse(defaultVal: Int = 0) = toTypeOrElse[Int](_.toInt, defaultVal)
  def toDoubleOrElse(defaultVal: Double = 0D) = toTypeOrElse[Double](_.toDouble, defaultVal)
  def toLongOrElse(defaultVal: Long = 0L) = toTypeOrElse[Long](_.toLong, defaultVal)
  def toFloatOrElse(defaultVal: Float = 0F) = toTypeOrElse[Float](_.toFloat, defaultVal)
} …
Run Code Online (Sandbox Code Playgroud)

scala

6
推荐指数
1
解决办法
1215
查看次数

在类中使用嵌套方法避免"Task not serialisable"

我理解通常在访问字段或超出闭包范围的方法时出现的"任务不可序列化"问题.

为了解决这个问题,我通常会定义这些字段/方法的本地副本,这样就无需序列化整个类:

class MyClass(val myField: Any) { 
  def run() = { 
    val f = sc.textFile("hdfs://xxx.xxx.xxx.xxx/file.csv") 

    val myField = this.myField 
    println(f.map( _ + myField ).count) 
  } 
} 
Run Code Online (Sandbox Code Playgroud)

现在,如果我在run方法中定义嵌套函数,则无法序列化:

class MyClass() { 
  def run() = { 
    val f = sc.textFile("hdfs://xxx.xxx.xxx.xxx/file.csv") 

    def mapFn(line: String) = line.split(";") 

    val myField = this.myField 
    println(f.map( mapFn( _ ) ).count) 

  } 
} 
Run Code Online (Sandbox Code Playgroud)

我不明白,因为我认为"mapFn"将在范围内...更奇怪的是,如果我将mapFn定义为val而不是def,那么它的工作原理如下:

class MyClass() { 
  def run() = { 
    val f = sc.textFile("hdfs://xxx.xxx.xxx.xxx/file.csv") 

    val mapFn = (line: String) => line.split(";") 

    println(f.map( mapFn( _ ) ).count)     
  } 
} …
Run Code Online (Sandbox Code Playgroud)

apache-spark

6
推荐指数
1
解决办法
229
查看次数

Sencha touch 2:在itemTpl中获取项目索引

在XTemplate的文档中,{#}可用于获取当前数组索引.

当我在xlist的itemTpl中使用它时,我总是得到1而不是索引:

    {
        xtype: 'list',
            store: 'myStore',
            itemTpl:new Ext.XTemplate(
                 '<tpl for=".">',
                      '<div>Item n°{#1}</div>',
                 '</tpl>'
            ),          
    }
Run Code Online (Sandbox Code Playgroud)

即使我的商店包含多个商品,也始终生成"商品编号1".

难道我做错了什么 ?

sencha-touch-2

4
推荐指数
1
解决办法
8588
查看次数

从列表中删除项目

我正在创建一个列表,我将通过json数据从列表中添加项目.我面临的问题是我有一个删除按钮,点击按钮后,必须从商店中删除列表中的所选项目.

这就是我尝试过的

{
    text: '',
    id: 'deletenotesBtn',
    iconCls:'trash',
    iconMask: true,
    ui:'action',
    handler: function(){
    var itemSelected = Ext.getCmp('noteslist').getSelection().remove();
    //  this.remove(this, true);
    alert('item deleted');
}
Run Code Online (Sandbox Code Playgroud)

关于我如何实现它的任何建议?

list sencha-touch-2

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

标签 统计

sencha-touch-2 ×2

apache-spark ×1

list ×1

scala ×1