标签 语法 下的文章

蓝桥杯 入门训练 圆的面积

最近在刷蓝桥杯的题,主要是比较简单,顺便可以练练自己的Java能力,因为光看书记不住实在不靠谱。

入门训练其实是熟悉OJ,理论上而言没什么好说的,但其实还是有很多疑问的。

比如这道圆的面积:

给定圆的半径r,求圆的面积。
输入包含一个整数r,表示圆的半径。

- 阅读剩余部分 -

Ruby 正则小脚本处理空行

Ruby学了主要作用大概也就是写写脚本了(毕竟传说中的Python/Ruby二选一),躺在床上想到因为复制黏贴下来少回车,在有的Markdown中会解析为没换行,有的则是<br/>,这让人非常的烦躁!所以需要处理一下,怎么处理最快——用脚本。

首先先匹配,在Ruby正则表达式中,+匹配一次或以上,我们需要匹配\n,所以需要用多行的模式m

re = Regexp.new(/\n+/m)

匹配替换用的是String.gsub方法。表示替换全部,sub只替换首次匹配的部分。

result = file.gsub(re, "\n\n")

- 阅读剩余部分 -

Rails WebSocket介绍

那道卡了一个学期的生产者消费者问题,今夏开工,和小新讨论了半天怎么怎么折腾,然后踩到了不少坑。

需要用到Java+Rails+JavaScript,题目要求,不得不用。Java用于生产者消费者模型,剩下的用于前端显示。

最初的设计是轮询,换句话说,类似于Java写入数据库,然后刷新定时刷新读写,一遍遍去查找更新,这样当然是可行的,但是——好Low。

现在我们有了一个更好的解决方案,用WebSocket实现动态的、即时的更新。当然当初知识一个小想法,WebSockeet对我还很抽象,所以咨询了一下用过的小伙伴小新,得知差不多一个意思,查了各种资料,开工。

WebSocket的原理性介绍:https://github.com/abbshr/abbshr.github.io/issues/22

简单的来说是在运输层用TCP来进行通讯,而不是用HTTP协议,这很好理解嘛,跟Socket差不多一个意思(本来以为这辈子都不会用Socket因为不搞桌面开发)。

- 阅读剩余部分 -

curl使用简易指南

我一直觉得curl是命令中的战斗机,因为他能做的事情实在是太多了,虽然不知道Windows里有没有这样的命令,但是在*nux中实在太强了,不过使用起来花样多,所以这里记一下,转自:http://www.ruanyifeng.com/blog/2011/09/curl.html

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。

它支持多种协议,下面举例讲解如何将它用于网站开发。

一、查看网页源码

直接在curl命令后加上网址,就可以看到网页源码。我们以网址www.sina.com为例(选择该网址,主要因为它的网页代码较短):

  curl www.sina.com

- 阅读剩余部分 -

Rails+AngularJS 从登陆漫谈Session以及Promise

分几篇写太麻烦了,这是Rails+AngularJS坑中的最后一篇,我们讲讲Rails中的Session以及AngularJS中的Promise。

Rails+AngularJS自己折腾是因为教程写的又臭又长,而且不是中文,我在想,我只是把Rails当做一个Api,是不是根本用不着那么多麻烦,不就是传个json出来么?

Yes,That's right.

我们来回忆一下:Rails 实现用户登录存取Session思路总结当时篇尾戏剧性的变化,这次看的是http://guides.ruby-china.org,效果好很多,需要什么直接去查。

- 阅读剩余部分 -

AngularJS directive如何进行ng-repeat的遍历输出

昨天真的依旧踩到了不少坑,这是其中的一个。

在directive里,其实scope究竟是拿来干嘛的,就目前我看来可以绑定传值,那么为什么我们要传值。

经过这次坑,总算是明白了不少。

Template或者TemplateUrl可以说是一个封闭的环境,换言之,你在外面用的在这里并不能用,如果需要用,要怎么办呢?用Scope把值传进去。

所以需要用ng-repeat的时候,最好的方法其实是将ng-repeat以template的形式进行遍历,假设我们有一个需要遍历的变量message,在外围我们使用: list="message"

接下来我们对list进行双向绑定,也就是说两边随便哪一边变了他都会改变,用=:

- 阅读剩余部分 -

Rails 处理跨站请求

AnguarlJS中的方法虽然可以直接进行jsonp跨域请求,不用像jQuery那样包装jsonp,不过依旧需要后端开启跨域,否则仍旧没办法数据交互:

已阻止跨源请求:同源策略禁止读取位于 http://localhost:3000/create 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

- 阅读剩余部分 -

AngularJS Directive中link的四个参数究竟是什么

AngularJS中的Directive简直是个深渊,今天又小小的跟它杠上了。

以这一段为例:

app.directive('posts', function() {
    return {
        scope: {
            adding: '&'
        },
        //require: 'ngModel',
        controller: 'AppController',
        link: function(scope, elm, attrs, ctrl) {
            console.log(scope);
            console.log(elm);
            console.log(attrs);
            console.log(ctrl);
        },
        template: '<input type="text" name="author" placeholder="author" ng-model="author" required><input type="text" name="content" placeholder="content" ng-model="content"><input value="post" type="submit" ng-click="adding({msg:{author:author, content: content}})">',
    };
});

通过console.log我们可以观察一下到底各个是什么东西。

scope:输出一个作用域,这个作用域是由Controller决定的,如果没有定义,是空值。

elm:输出一个元素数组,数组中的每个元素是调用directive的DOM树

attrs:输出一个Object, Object内是该DOM元素的各种属性方法

ctrl:输出一个Object,是对应的controller

AngularJS 动态参数传值问题

今天完整的练了个手,结果踩到不少坑,其中一个是传参数的问题,我希望用绑定好的msg去传参,结果就遇到问题了。

当时写的是app.addMessage({{msg}})结果一直报错,坑爹。查了一下才知道,如果使用{{ }}相当于转换为一个常量,而这里需要传入的是变量,所以直接这么写就行了:

app.addMessage(msg)

参考:https://cnodejs.org/topic/5305cb2e6c0325e50137797d