block

Programming Ruby 阅读笔记

冷暖自知 提交于 2020-03-30 03:40:25
在Ruby中,通过调用构造函数(constructor)来创建对象 song1=Song.new("Ruby") Ruby对单引号串处理的很少,除了极少的一些例外,键入到字符串字面量的内容就构成了这个字符串的值。 Ruby对双引号字符串游更多地处理。首先,它寻找以反斜线开始的序列,并用二进制值替换它们。其次是字符串内的表达式内插,#{表达式}序列会被“表达式”的值替换。 $greeting="Hello" # $greeting是全局变量 @name="Prodence" # @name是实例变量 Ruby 使用一种命名惯例来区分名称的用途:名称的第一个字符显示这个名称如何被使用。局部变量、方法参数和方法名称都必须以小写字母或下划线开始。全局变量都有$为前缀,实例变量以@符号开始,类变量以@@符号开始。类名称、模块名称和常量必须以一个大写字母开始。 许多语言中nil(或null)的概念是指“没有对象”, 在Ruby中,这是不一样的:nil是一个对象,与别的对象一样,只不过它是用来表示没有任何东西的对象。 a = %w{ant bee cat dog} 等价于下面的表达方式 a= ['ant','bee', 'cat' ,'dog'] 正则表达式只是一种指定字符模式的方法,这个字符模式会在字符串中进行匹配。在Ruby中,通常在斜线之间(/pattern/)编写模式来创建正则表达式。

css margin知识 全集

心不动则不痛 提交于 2020-03-26 20:03:30
你真的了解margin吗?你知道margin有什么特性吗?你知道什么是垂直外边距合并?margin在块元素、内联元素中的区别?什么时候该用padding而不是margin?你知道负margin吗?你知道负margin在实际工作中的用途吗?常见的浏览器下margin出现的bug有哪些?…… 写css,你少不了与margin打交道,而对于这个平时我们最常用的css属性我们并非十分了解。介于此我打算写下这篇文章,一来是自己工作中的总结,也是对自己知识的一次梳理。 Margin是什么 CSS 边距属性定义元素周围的空间。通过使用单独的属性,可以对上、右、下、左的外边距进行设置。也可以使用简写的外边距属性同时改变所有的外边距。——W3School 边界,元素周围生成额外的空白区。“空白区”通常是指其他元素不能出现且父元素背景可见的区域。——CSS权威指南 我比较喜欢使用“外边距”这个词来解释margin(同理padding可以称之为“内边距”,但是我又恰恰喜欢称呼padding为“补白”或者“留白”),我们可以很清楚的了解到margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。 Margin的特性 margin始终是透明的。 margin通过使用单独的属性,可以对上、右、下、左的外边距进行设置。即:margin-top、margin-right、margin

HDFS——读写流程

浪尽此生 提交于 2020-03-26 12:08:42
3 月,跳不动了?>>> HDFS上传流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 NameNode返回是否可以上传。 客户端请求第一个 block上传到哪几个datanode服务器上。 NameNode返回3个datanode节点,分别为dn1、dn2、dn3。 客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。 dn1、dn2、dn3逐级应答客户端。 客户端开始往dn1上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,dn1收到一个packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答。 当一个block传输完成之后,客户端再次请求NameNode上传第二个block的服务器。(重复执行3-7步)。 HDFS读流程 来源: oschina 链接: https://my.oschina.net/u/4427158/blog/3211780

HDFS_Hadoop核心_001

白昼怎懂夜的黑 提交于 2020-03-26 08:23:57
1.HDFS概述 =============================================================================================================== 2-HDFS的namenode和datanode ======================================================================================================================== 3-HDFS的文件副本机制 ================================================================================================================= 4-HDFS的块缓存和访问权限 注意:block只是个逻辑单位(说的时候只说这个文件是几个block) HDFS系统跟linux系统很像,也有一个根目录,根目录下有子目录 ============================================================================================================= 5

MRC-block与ARC-block

a 夏天 提交于 2020-03-25 23:24:25
Block专辑: Block讲解一 MRC-block与ARC-block Block详解一(底层分析) 今天讲述Block的最后一篇,后两篇仅仅是加深1,2篇的理解,废话少说,开始讲解! __block细节 __block内存管理 循环引用问题 一:__block细节 大家可能会遇到下面的问题,block的内部想要修改外部的auto变量,但是编译器会报问题!如下 如果block内部想要修改外部的auto变量,可以在int age 前面加入static修饰词,变为静态局部变量(会一直存在内存中,反而不好),以及可以将int age代码移植到函数外面变为全局变量! 除此之外还有没有其他的做法了呢,显然是有的,通过__block修饰,如下: 发现__block修改外面变量是可以达到目的的! 小结论 __block可以用于解决block内部无法修饰auto变量值的问题 __block不能修饰全局变量、静态变量(static) 编译器会将__block变量包装成一个对象 通过命令 xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m 生成main.cpp代码查看原理 上面提到可以将int main函数的代码简化一下,简化成如下 首先拿到forwarding指针然后再拿到age的值 二:__block的内存管理 1.

BFC(block formatting context)

依然范特西╮ 提交于 2020-03-25 17:48:02
BFC(block formatting context):块级格式化上下文 触发BFC: 1.根元素 2.float; 3.overflow:auto,scroll,hidden; 4.display:table-cell、table-caption、inline-block、flex、inline-flex; 5.position:absolute、fixed; 注: 一、没有父级的元素为根元素 二、浮动会触发BFC 三、overflow 属性规定当内容溢出元素框时发生的事情: overflow:hidden;1.子集margin-top把父级一起往下带;2.子级浮动导致高度塌陷,可以自动找回高度;3.子级超出父级容器范围 overflow:scroll;多用于留言板类型 来源: https://www.cnblogs.com/YYouyang/p/7470717.html

IE的特有属性hasLayout和BFC

你。 提交于 2020-03-25 17:37:55
IE多数的bug源于hasLayout属性,这个属性在IE8及以后的浏览器中被抛弃 IE7及以下版本不支持BFC 块级格式化上下文BFC# BFC是W3C CSS 2.1 规范中的一个概念,它决定了元素如何 对其内容进行定位 ,以及与 其他元素的关系和相互作用 。当涉及到可视化布局的时候, Block Formatting Context提供了一个环境,HTML元素在这个环境中按照一定规则进行布局 。一个环境中的元素不会影响到其它环境中的布局。 也可以说BFC就是一个作用范围。可以把它理解成是一个独立的容器,并且这个容器的里box的布局,与这个容器外的毫不相干。 BFC的规则# 1、在创建了 Block Formatting Context 的元素中,其子元素按文档流一个接一个地放置。 垂直方向上他们的起点是一个包含块的顶部 ,两个相邻的元素之间的 垂直距离 取决于 ‘margin’ 特性。 根据 CSS 2.1 8.3.1 Collapsing margins 第一条,两个*相邻的普通流中的块框*在垂直位置的空白边会发生折叠现象。也就是*处于同一个BFC中的两个垂直窗口的margin会重叠。* 根据 CSS 2.1 8.3.1 Collapsing margins 第三条,*生成 block formatting context 的元素不会和在流中的子元素发生空白边折叠。

BFC简单介绍

青春壹個敷衍的年華 提交于 2020-03-25 17:36:58
W3C关于BFC的一个解释: Block Formatting Context(块格式化上下文)是W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。 在创建了 Block Formatting Context 的元素中,其子元素会一个接一个地放置。垂直方向上他们的起点是一个包含块的顶部,两个相邻的元素之间的垂直距离取决于 ‘margin’ 特性。在 Block Formatting Context 中相邻的块级元素的垂直边距会折叠(collapse)。 在 Block Formatting Context 中,每一个元素左外边与包含块的左边相接触(对于从右到左的格式化,右外边接触右边), 即使存在浮动也是如此(尽管一个元素的内容区域会由于浮动而压缩),除非这个元素也创建了一个新的 Block Formatting Context 。 看起来比较蛋疼是吧,另一个通俗点的解释是:在普通流中的 Box(框) 属于一种 formatting context(格式化上下文) ,类型可以是 block ,或者是 inline ,但不能同时属于这两者。并且, Block boxes(块框) 在 block formatting context(块格式化上下文) 里格式化, Inline boxes(块内框) 则在 inline

有关对hasLayout和BFC(Block Formatting Contexts)的理解

主宰稳场 提交于 2020-03-25 17:19:07
2014年1月26日 首先,hasLayout 和 Block Formatting Contexts 分别是什么? 1、hasLayout是IE内部的一个特有的隐形属性,属性值为true/false。元素一旦拥有了这个属性,就拥有了布局,也就是说该元素可以对自己及其子元素进行尺寸计算和定位(比起依赖父元素进行布局会花费更大的代价)。由于这个元素是隐形的,不能通过CSS来设置hasLayout:true/false;可以通过js来检测元素是否拥有布局。hasLayout是只读属性,一旦触发,不可逆转。有些元素本身就默认拥有布局,有的元素可以通过一些 CSS 属性设置(如 display 、 width 、 height 等)来激发产生布局。并不是所有元素都拥有布局的原因是为了简洁和提高性能,拥有布局会消耗内存,并不轻量,会降低性能。最常用的是在CSS中设置zoom:1;来激发布局,不会产生任何其他影响的情况下让元素拥有布局。 2、BFC(块级格式化上下文)就是一种属性,该属性会影响着元素的定位和与其兄弟元素之间的相互作用。拥有BFC的元素可以看成是被隔离了的独立的容器,容器里面的元素在布局上不会影响到容器外面的元素,它是属于普通流(在CSS 2.1中有三种定位方案:普通流、浮动、绝对定位)的,因此不会对兄弟元素产生影响。 那么,怎么触发hasLayout 和 BFC ? 1

margin折叠及hasLayout && Block Formatting Contexts

流过昼夜 提交于 2020-03-25 17:17:48
margin折叠的产生有几个条件: 这些margin都处于普通流中,并在同一个BFC中; 这些margin没有被非空内容、padding、border 或 clear 分隔开; 这些margin在垂直方向上是毗邻的,包括以下几种情况: 1、一个box的top margin与第一个子box的top margin 2、一个box的bottom margin与最后一个子box的bottom margin,但须在该box的height 为auto的情况下 3、一个box的bottom margin与紧接着的下一个box的top margin 4、一个box的top margin与其自身的bottom margin,但须满足没创建BFC、零min-height、零或者“auto”的height、没有普通流的子box 垂直方向上毗邻的box不会发生折叠的情况: 根元素的外边距不会参与折叠 一个有clearance的box的上下margin毗邻,它会与紧接着的下一个box发生margin折叠,但折叠后的margin不会再与它们父box的bottom margin折叠 折叠边距的计算 当两个margin都是正值的时候,取两者的最大值;当 margin 都是负值的时候,取的是其中绝对值较大的,然后,从 0 位置,负向位移;当有正有负的时候,先取出负 margin 中绝对值中最大的,然后,和正