- 浏览: 201053 次
- 性别:
- 来自: 上海
最新评论
-
Me_is_vector:
jxf657012724 写道如果用maven管理jar包。记 ...
jasperreports不能导出PDF格式:Could not load the following font -
jxf657012724:
如果用maven管理jar包。记得iText2.X和 iTex ...
jasperreports不能导出PDF格式:Could not load the following font -
我是大土豪:
都2017年了,还没写完?
十二步学会Scala-3 -
xiaodongjsj:
都2016年年底了,还没写完吗?
十二步学会Scala-3 -
WesTwardblue:
好东西,给楼主赞一个
十二步学会Scala-2
文章列表
现在很多人都在宣传程序员要知道底层,要做真正程序员至少得精通C,操作系统也要了解一些。
我对这个观点有不同意见,但找不到支持者。有太多牛人说程序员要理解底层了。
今天看到一篇文章,有段说
The Danger of Understanding How Things Work
http://www.javalimit.com/2010/01/actor-thinking.html
真是难得。
--
路过社报道:据相关人士称,《Programming Scala》中文版在Review阶段了,由inforQ的编辑翻译,质量应该有保证。
不过现在有两个《Programming Scala》,不知道他们翻译的是哪一本。
Oreilly那本有在线版,可能版权比较松
Ruby经典的书是在The Pragmatic Bookshelf,而InfoQ跟Ruby社区比较近,所以出他们家的书也未可知。
至于这两本书哪本好,他们各有千秋。
如果是Busy Java Developer, 有丰富的Java经验,想看一下Scala有什么不同的地方。那么推荐看Oreilly的,这本书是按照OO,FP这样的划分 ...
先来看一段Scala代码
scala> def f(`yield` : Int) = 5 match { case `yield` => "yup"; case _ => "nope"}
f: (yield: Int)java.lang.String
scala> f(5)
res1: java.lang.String = yup
这段代码定义了一个函数,包含一个参数,函数主题是Pattern Match.
有趣的地方是参数变量是`yield`,
而且当传入5时,`yield`能match起来。
这是为什么呢 ...
工具:
simple-build-tool(sbt)
http://code.google.com/p/simple-build-tool/
A build tool for Scala
Scala Build工具
SbtEclipsify
http://github.com/musk/SbtEclipsify
Plugin for sbt for creating .classpath and .project files for the Ecipse IDE.
测试:
ScalaCheck
http://code.google.com/p/scalacheck/
ScalaCheck i ...
这几个名字什么概念?以前不知其解,现在有一些理解不知道对不对,请大家讨论一下。
Currying:Currying是为了纪念美帝数学家Haskell Brooks Curry而命名的,所以想翻译成中文估计最好是音译了。它的基础是λ演算。
在计算机语言就是一个函数可以带多个参数列表,注意是多个参数列表,而不是多个参数。如def foo(x: Int)(y: Int)(z: Int){}。
这是一种能力表述,对应的函数称之为Curried function。但是Scala骨子里不是函数式语言,它是用OO实现的,而且是建立在JAVA虚拟机上,
于是Scala就提出了 Partially applie ...
在Scalacn中文社区,yiding He问Scala的null, None, Nil, Nothing, Unit,其实他总结的很全面。大家也讨论了PartialFunction什么意思,并且怎么翻译。另外现在wave提供很充分,基本上可以人人有份,只是不太会玩。这周51job上出现两个和Scala有 ...
- 2009-11-29 21:07
- 浏览 1767
- 评论(0)
本来想一个月写一个摘要回顾,但感觉时间太长了,记忆不好,而且刚好这周Scala发生了一些热闹的事情可以回顾一下。
Scala Day2010宣布了,明年中旬在瑞士洛桑举行,现在在征稿,大家对此都感到很兴奋。我想Scala Day会又产生影响力。
51CTO发布的文章《Scala IDE三剑客专访》记引起的话题,Netbean Scala创作者草原很耐心的回答问题,并且讲了一些Scala在项目中的使用心得。Margaret发布了Chat项目,我发布了easyscala,目的是提供在线运行Scala脚本。另外Java的轻量级Web框架----Play framework也引起大家热议,毕竟Ja ...
- 2009-11-22 14:43
- 浏览 1604
- 评论(1)
TIOBE一如既往得推出11月份编程语言排名,
Java就像SUN一样在推出JDK5后日渐衰弱,希望在 Oracle财主的支持下会东风再起。
C再次证明了什么叫经久不衰。
很奇怪PASCAL居然一直在20帮内,还以为只是学校里用用的。
尽管对perl6很失望,但perl却一直压着python.
在20榜单内还有一些从来没有听过的,像SAS,Lua
由于iphone,Object-C风头狠劲,就像当年由于rails的ruby那样迅速蹿升。
Scala位置没挪过,
我大胆预测一下,明年Scala Day后会上到至少30内
javascript权威指南第五版 函数
一个函数是可以被不断调用,运行的JavaScript代码块。
一个被对象调用的函数成为方法
定义和调用函数
一个函数有:函数名,一个或多个参数名和用大括号组织起来的语句
定义函数的例子:
//返回undefined
function print(msg) {
document.write(msg, "<br>");
}
// 计算并返回
function distance(x1, y1, x2, y2) {
var dx = x2 - x1;
var dy = y2 - y ...
7.1 对象创建:
对象是组合的数据类型:他们集合了多个值到一个单元并且允许你用名字读写值。另一个解释是一个对象是无序属性的集合,每一个属性都有名字和对应的值。
不知道这个对象的描述是不是符合所有语言?
最简单创建对象的方法是用逗号分隔的名字/值对,用大括号包围起来。
var empty = {}; // 一个没有属性的对象
var point = { x:0, y:0 };
var circle = { x:point.x, y:point.y+1, radius:2 };
var homer = {
"name": "Homer Simps ...
==和===都是判断两个值是否相同
对象,数组和函数用引用进行比较。只有两个变量指向同一个对象时才相等。如果想比较不同对象里的值是否相等,需要自定义方法。
=== identity operator 标志位判断?
如果两个值的类型不同,则不同
如果两个值是number并且值相同,除非等于NaN,则相同。
如果两个值是strings并且值相同,则相同。注意string是每个字节进行比较,如果编码不同需要用String.localeCompare()。
如果两个值是boolean并且值相同,则相同
如果两个值都是null或者都是undefined,则相同
== equality opera ...
黑色字体代表书上的东西(当然是我翻译出来的,可以翻译会有误)
蓝色字体代表我的观点
红色字体代表我的疑问
数据类型和值
三个原生数据类型:numbers,strings of text(strings)和Boolean truth values(booleans).还定义了两个独立的数据类型:null和undefined,他们都只有一个值。
java的null不是数据类型,所以如果程序遇到null基本上就等于束手无措,ruby用nil表示空,是个对象有一些基本操作,scala更进一步有继承Option的None和空列表Nil,可以将空演绎得更充分。
JavaScript支持组合的数据类型 ...
《javascript权威指南第五版》是一本很好的JavaScript书,我之前对JavaScript仅限于会抄袭的水平。
现在看了一下这本书对JavaScript有了全新的了解,甚至对Java和Scala的理解也加深了些。
由于JavaScrip不是OO语言,但本书用大量篇幅介绍了如何使用JavaScript做到Java能做的。而JavaScript本身有很多非常灵活的语言机制是Java无法匹敌的。
字符集:Unicode字符集
Scala用的是Unicode Basic Multilingual Plane (BMP)字符集
大小写敏感
忽略空格,制 ...
原文有例子做解释,很容易理解。
有些观点和传统的想法,比如不要用接口,不要用set/get方法,多用静态方法,字段...
而大部分是放在哪里都适用的最佳实践。
两个原则:
1. 不要做你不需要的
2. 不要分配你可以避免的内存
摘要:
避免创建对象
使用本地方法(Native Methods)
用实际类比接口好
用静态方法,字段
避免使用get/set
缓存查询字段
将常量声明为final
使用增强的循环
避免枚举
在内类中使用包范围
避免浮点
一些性能数据
Action
Time
...
《The Definitive Guide to Lift》12章介绍widgets的地方有些小错误,所以再重复写一下,以免大家为这小小错误浪费时间。
Lift的widget说起来很简单,就是用Scala包装了ajax代码。
一,使用TableSorter
TableSorter在展示表格数据的时候非常有用,lift自带了TableSorter的widget.
Step 1: 初始化
在bootstrap.liftweb.Boot中:
引入
import net.liftweb.widgets.tablesorter._
再调用TableSo ...