所以,在回答其他一些问题时,我偶然发现计算中位数为5的必要性.现在,在另一种语言中有一个类似的问题,但是我想要一个Scala算法,我不确定我是否满意我的.
首先,我有特点:
import _root_.com.thoughtworks.selenium._
import org.scalatest.matchers.ShouldMatchers
import org.scalatest.matchers.ShouldMatchers._
trait SeleniumField extends ShouldMatchers {
val name : String
def selenium : Selenium
def text : String = { return selenium.getValue(name) }
def is(v:String) : Boolean = { this.value equals v }
def set(v:String) = { selenium.`type`( name , v ) }
}
Run Code Online (Sandbox Code Playgroud)
然后我用这个特性创建scala类:
import _root_.com.thoughtworks.selenium._
class WebAppField(sel:Selenium, nam: String) extends SeleniumField {
def selenium = sel
override val name = nam
}
Run Code Online (Sandbox Code Playgroud)
然后当我尝试在代码中使用它时:
val rodzaj = new WebAppField(selenium, "RODZAJ")
rodzaj text should …Run Code Online (Sandbox Code Playgroud) 我确定我只是在变钝,但是我已经购买了OA书,其他几个,我仍然像以前一样密集....我正在尝试用maven建立一个scala库scala plkugin,但我认为这也适用于Java.
它没有主代码模块,它只是一个库.如果我有一个类如com.busygeeks.binklebots和它下面的源文件,我创建了
src
scala
com
busygeeks
binklebots
sourcefies.....
Run Code Online (Sandbox Code Playgroud)
当我尝试maven:compile时,它成功完成,但实际上并没有构建任何东西.
我知道这是非常基本的 - 但我很想念它.我怎么能说"把所有东西都放在src/scala下并构建并将其jar化"
我编写了一个Scala类Sheltie来了解范围在Scala中的工作方式.我写了一个等效的Java Sheltie类作为交叉引用.这是我遇到麻烦的地方.
在Scala Sheltie类的主体中,有一个对调用方法的方法调用bark和调用println之后的语句bark.一个等效的方法调用bark()可以放在另一个方法中的等效Java类中,但在任何方法之外,它都可以理解Duplicate method bark().
我理解Java代码是如何工作的,所以这种行为(在Java中)并不令人惊讶.令人困惑的是Scala的行为方式.
我希望解决的是:为什么Scala允许类体中的"调用"以及为什么它允许在if块中创建另一个val定义,而Java则不然.
Foo.scala
class Sheltie {
val barkNum = 10
def bark() {
//local barkNum of "bark" method
val barkNum = 20
if(true){
//local "barkNum" of if-block
val barkNum = 30 //why does Scala not complain of a duplicate local variable, when Java does in the equivalent program Sheltie.java
println("Inside if block: No of times Riley barked is " + barkNum) …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个程序,将一个数字转换为它的字符串等价物.IE 987,654,321 =九十八七百万六五十四数千三百二十一.我从控制台读取值,我想迭代从i = 0到string.length的while循环
例
var s = "987654321"
var characters = s.toString;
var i = 0;
while(i < characters.length){
do something
}
Run Code Online (Sandbox Code Playgroud)
我的代码如下
object project1 {
def main(args: Array[String]) {
println("Enter a number")
val s = Console.readLine
println(eval(s));
}
def tens(c: Char) : String = (
if (c.toInt == 9){
return "Ninety";
} else if (c.toInt == 8){
return "Eighty";
} else if(c.toInt == 7){
return "Seventy";
} else if(c.toInt == 6){
return "Sixty";
} else if(c.toInt == …Run Code Online (Sandbox Code Playgroud)