所以我和我的朋友争论说,像GCC这样的编译器可以在没有任何类型信息的情况下自动检测纯函数.我不信.
像D或Haskell这样的语言在其类型系统中具有纯度,程序员明确定义了哪些函数是纯粹的还是纯粹的.纯函数没有副作用,因此可以非常容易地并行化.
所以问题是:这一切都是必要的吗?编译器可以检测纯度,而不需要任何元或类型信息,只需假设任何执行IO或自动访问全局变量的东西都不纯粹吗?
我有多个具有固定宽度和高度的div(想想某种带有文章图片的目录视图).现在我想向他们展示类似于float:left的行为.这样可以确保浏览器窗口越大,一行中显示的div就越多.
浮动的缺点:左边的解决方案是,右侧有一个很大的白色间隙,直到另一个div适合.现在我的工作是在页面上均匀地分配div,而不是右侧的大白色间隙,单个div之间应该有均匀分布的间隙.
JavaScript中的解决方案很简单:http://dl.dropbox.com/u/2719942/css/columns.html
您可以看到,如果您调整浏览器窗口的大小,它的行为类似于float:left,但空间均匀分布在框之间.使用JavaScript动态计算列数和行数:
function updateLayout() {
var boxes = document.getElementsByClassName('box');
var boxWidth = boxes[0].clientWidth;
var boxHeight = boxes[0].clientHeight;
var parentWidth = boxes[0].parentElement.clientWidth;
// Calculate how many boxes can fit into one row
var columns = Math.floor(parentWidth / boxWidth);
// Calculate the space to distribute the boxes evenly
var space = (parentWidth - (boxWidth * columns)) / columns;
// Now let's reorder the boxes to their new positions
var col = 0;
var row = 0;
for …Run Code Online (Sandbox Code Playgroud) jOOQ具有文档中所述的 CREATE TABLE语法:
create.createTable(AUTHOR)
.column(AUTHOR.ID, SQLDataType.INTEGER)
.column(AUTHOR.FIRST_NAME, SQLDataType.VARCHAR.length(50))
.column(AUTHOR_LAST_NAME, SQLDataType.VARCHAR.length(50))
.execute();
Run Code Online (Sandbox Code Playgroud)
我想知道如何定义哪个列属于主键?那么在jOOQ中有没有办法用PRIMARY KEY信息创建一个CREATE TABLE语句?
我对SQLite的解决方案特别感兴趣,后来没有语法来添加主键,所以我认为在最坏的情况下我必须转到特定于DB的解决方案?