scala中的数字文字中的下划线

时间:2015-07-07 17:51:47

标签: scala literals

显然scala不支持数字文字中的jdk7及更高版本的下划线?

我正在使用jdk 8

scala> System.getProperty("java.version")
res0: String = 1.8.0_40

这里我们尝试使用jdk7(及更高版本)数字文字:

scala> val x = 1_000_000
<console>:1: error: Invalid literal number
       val x = 1_000_000
               ^

这是否有scala语言选项?

3 个答案:

答案 0 :(得分:15)

在Scala的土地上,你可能会看到类似的东西:

var app = angular.module('chartApp', ['ngRoute']);

    app.factory('UserVerified', function() {
        return

 {bool: false}; 
        });


    app.config(function ($routeProvider) {
        $routeProvider
        .when('/',{
            templateUrl: 'pages/home.html',
            controller: 'LoginController'
        })
        .when('/Trend', {
            templateUrl: 'pages/trend.html',
            controller: 'PredictionController'  
        })  

    });

    app.controller('LoginController', ['$scope', '$http', 'UserVerified', function($scope, $http, UserVerified){
        $scope.hasPermission = UserVerified.bool;

    $scope.getAuthentication = function(){
        console.log($scope.userId, $scope.pwd)
        $http.get('/getAuth', {
                params: { user_id: $scope.userId, pwd: $scope.pwd }
        }).success(function (response){
            console.log(response);
            UserVerified.bool = response;
            $scope.hasPermission = UserVerified.bool;
        }); 
    }

}]);

s"My name is $firstName"

没有理由没有:

sql"select id, name from members where id = ${id}"

甚至:

i"1 000 000"

Scala库中没有内置animal"Dog" // checks that Dog is on the list of animal words 字符串插值,但您可以使用:

i

答案 1 :(得分:1)

请注意,从[[10, 10, 'NULL'], [10, 10], [10, 10, 10, 10]] 开始,下划线是数字文字分隔符:

Scala 2.13

答案 2 :(得分:0)

您现在可以编写冗长的数字文字,这些文字的可读性得分很高,这要归功于 Java 7 中的更新。在 Adeva 的博客中阅读更多内容 https://adevait.com/java/5-best-and-worst-practices-in-java-coding

使用下划线之前:

int minUploadSize = 05437326;
long debitBalance = 5000000000000000L;
float pi = 3.141592653589F;

使用下划线后:

int minUploadSize = 05_437_326;
long debitBalance = 5_000_000_000_000_000L;
float pi = 3.141_592_653_589F;

以上在 Java 中编写的声明显示了在数字文字中使用下划线来提高代码可读性的重要性。当您比较上面的两个声明时,您将能够推断出包含下划线的声明比另一个更具可读性。