2016-04-23 55 views
0

我的代碼如下:斯卡拉如何檢查單位的平等?

myBuffer = myInput.read() 
if (!myBuffer.!=(-1)) { 
    return -1 
} 

myBuffer被聲明爲在類的頂部VAR int和我試圖檢查時,它等於-1,這樣我可以返回-1。當我試圖做Java的方式,就像這樣:

if ((myBuffer = myInput.read()) == -1) { 
    return -1; 
} 

我得到一個警告說,與單位平等的測試將始終爲假,當我跑它,它永遠不會退出循環,其被證實這段代碼是其中的一部分。這感覺應該是微不足道的,但我一直無法找到解決方案。有任何想法嗎?

+1

賦值'myBuffer = myInput.read()'返回一個'Unit',而不是myInput.read的'()的值'。你想要完成什麼? –

+0

我試圖從一個文件中讀取(myInput是一個InputStream),並停止讀取文件的末尾(用-1表示)。我用Java編寫了這段代碼,並試圖將它移植到Scala – covfefe

回答

0

使用var在Scala中不推薦,因爲你可能知道。

嘗試scala.io.StdIn.readLine()