文档章节

内建控制结构之变量范围

柳哥
 柳哥
发布于 2014/06/07 16:11
字数 379
阅读 33
收藏 0
点赞 0
评论 0

如果你是java程序员,你会发现scala的范围规则几乎是java的翻版。然而,两者之间仍然有一个差别scala允许在嵌套范围内定义同名变量
Scala程序里所有的变量定义都存在有效作用范围。最常见的情况是:花括号通常引入了新的作用范围,所以任何定义在花括号里的东西超出括号之后就脱离了范围(注:这条规则有几个例外,因为在scala里有时候可以用花括号代替小括号。For表达式的可选语法是这种用法的一个例子)。如例:


结果:


本例中定义的所有变量----i,j,prod,k----都是本地变量,也就是对于定义它们的函数来说是“局部”的。每次函数被调用的时候都会使用一整套全新的本地变量。一旦变量被定义了,在同一个范围内就无法定义同样的变量名了。如例:


然而,你可以在内部范围内定义与外部范围里的变量名相同的变量。如:


结果:


Scala和java间要注意的差异是java不允许在内部范围内创建与外部范围变量同名的变量。在scala程序里,内部变量被认为遮蔽了同名的外部变量,因为在内部范围中外部变量变得不可见

© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 201
博文 394
码字总数 347782
作品 0
杭州
技术主管
OpenGL超级宝典笔记——GLSL语言基础

变量 GLSL的变量命名方式与C语言类似。变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量。当然还...

Mario_Q ⋅ 2014/03/13 ⋅ 2

OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)

原文链接: http://blog.csdn.net/wangyuchun799/article/details/7744620#t18 目录(?)[-] 1 基本数据类型 11 void 12 Booleans 13 Integers 14 Floats 15 Vectors 16 Matrices 17 Sampler ......

aspirs ⋅ 2016/02/01 ⋅ 0

freemarker语法介绍及其入门

FreeMarker标签使用 一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数...

wersdffg ⋅ 2014/09/30 ⋅ 0

freemarker总结

Freemarker 使用总结 FreeMarker模板文件主要由如下4个部分组成: 文本:直接输出部分 注释:<!-- …-->格式部分,不输出 插值:即${}或者#{}部分,使用数据模型中的部分替代输出. FTL指令:freema...

忘川-hsm ⋅ 2016/11/01 ⋅ 0

FreeMarker 的常用指令介绍

一、数据类型: 四种基本类型:String、Number、Boolean、Date。直接指定值可以是字符串、数值、布尔值、集合及Map对象 1. 字符串 直接指定字符串值使用单引号或双引号限定。字符串中可以使用...

期待变强的菜鸟 ⋅ 2014/11/03 ⋅ 2

FreeMarker标签介绍及各种数据类型处理

FreeMarker标签使用 一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数...

驛路梨花醉美 ⋅ 2016/11/29 ⋅ 0

FreeMarker标签使用

一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代...

罪恶的花生 ⋅ 2012/05/31 ⋅ 0

PHP之变量范围

范围跨度   大部分的PHP变量只有一个单独的范围。这个单独的范围跨度同样包含了include和require引入的文件   这里变量$a将会在包含文件b.inc中生效 函数范围   在用户自定义函数中,一...

jjjssswww ⋅ 2017/06/06 ⋅ 0

FreeMarker标签介绍

FreeMarker标签使用 一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数...

机器学习 ⋅ 2013/04/24 ⋅ 0

TCL脚本语言详解

语言简介 TCL是一种很通用的脚本语言,功能强大。最早称为“工具命令语言”"Tool Command Language",但是目前已经不是这个含义,不过我们仍然称呼它TCL,发音为"tickle”。TCL经常被用于快速...

zengxiantao1994 ⋅ 2017/09/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

金山WPS发布了Linux WPS Office

导读 近日,金山WPS发布了Linux WPS Office中文社区版新版本,支持大部分主流Linux系统,功能更加完善,兼容性、稳定性大幅度提升。本次更新WPS将首次在Linux提供专业办公文件云存储服务,实...

问题终结者 ⋅ 昨天 ⋅ 0

springboot2输出metrics到influxdb

序 本文主要研究一下如何将springboot2的metrics输出到influxdb maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo......

go4it ⋅ 昨天 ⋅ 0

微信小程序 - 选择图片显示操作菜单

之前我分享过选择图片这个文章,但是我在实际开发测试使用中发现一个问题在使用 wx.chooseImage 选择照片显示出第一格是拍照,后面是相册里的图片。这种实现之前说过了,效果如下。 但是你从...

hello_hp ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部