- Effective C++ 条款10:令operator=返回一个reference to *this
君鼎
C++c++
EffectiveC++条款10:令operator=返回一个referenceto*this核心思想:赋值操作符(operator=)应始终返回当前对象的引用(*this),以实现连锁赋值并保持与内置类型一致的语义。⚠️1.问题场景:违反连锁赋值语义classWidget{public:voidoperator=(constWidget&rhs){//错误:返回voidvalue=rhs.val
- streamline 这是个组合词,能猜出大概意思,组织
董八七
title:streamlinedate:2018-08-2117:03:19NO_sents:76NO_references:58streamlinestreamlinedstreamlines组织一些流程(process)AlthoughfixedguidelineswouldsimplifyGWASPAsubstantiallybyprovidinganalytictoolsthatstre
- 在shell脚本中创建动态变量,并引用存储在动态变量中的值
企鹅与蟒蛇
Linuxbash开发语言
Contents1.要求:动态创建变量名,并引用动态变量名2.实现:2种方式2.1.指针变量的形式(PointerVariable)2.2.数组的形式(Array)3.References1.要求:动态创建变量名,并引用动态变量名在shell脚本中动态生成一组变量名,并引用生成的变量名。示例如下:var_$n=$n+2,最终得到如下表达式var_1=3var_2=5var_3=72.实现:2种方式
- 【STM32】FreeRTOS 任务的创建(二)
这篇文章在于详细解释FreeRTOS中任务的创建过程,包括任务创建的本质过程、API详解、两种创建方式(动态/静态)、任务函数规范、常见错误及实践建议。这里参照:RTOS官方文档:https://www.freertos.org/zh-cn-cmn-s/Documentation/02-Kernel/04-API-references/01-Task-creation/01-xTaskCreate
- 2024年08月27日 Go生态洞察:unique 包剖析与应用
猫头虎
#Go生态洞察golang开发语言后端gogingo1.19beego
2024年08月27日Go生态洞察:unique包剖析与应用摘要我是猫头虎,本篇文章将带你深入探索Go1.23中全新的unique包,它提供了通用可比较值的驻留(interning)方案。借助unique.Make与泛型Handle[T],我们可以在任意可比较类型上高效去重,并在并发环境下安全使用,同时通过弱引用(weakreferences)实现自动回收。文章将结合标准库net/netip示例,
- 【系统架构设计】计算机网络
傻傻虎虎
系统架构设计精编系统架构计算机网络php
【系统架构设计】计算机网络网络架构与协议网络互联模型OSI/RM结构模型TCP/IP结构模型IPv6局域网与广域网局域网特点网络互连与常用设备网络互联设备交换技术路由技术网络存储技术网络架构与协议网络互联模型OSI/RM结构模型1977年,国际标准化组织为适应网络标准化发展的需求,制定了开放系统互联参考模型(OpenSystemInterconnection/ReferenceModel,OSI/
- 「iOS」————ARC
归辞...
ioscocoamacosobjective-c
iOS学习ARCretain函数**release函数**ARC规则下的autoreleaseautorelease函数ARC在编译期和运行期做了什么ARCARC的全称AutoReferenceCounting.也就是自动引用计数。使用MRC时开发者不得不花大量的时间在内存管理上,并且容易出现内存泄漏或者release一个已被释放的对象,导致crash。后来,Apple引入了ARC。使用ARC,开
- Item10:令 operator = 返回一个 reference to *this
双马尾为什么是神
EffectiveC++c++开发语言
《EffectiveC++》中的Item10“令operator=返回一个referenceto*this”(Haveassignmentoperatorsreturnareferenceto*this)为我们提供了关于赋值运算符重载的重要指导。本文将深入探讨这一条款,分析其背后的原因、实际应用以及遵循该准则的好处。一、核心准则Item10的核心准则简洁明了:在重载赋值运算符时,应让其返回一个指向
- Java垃圾回收算法详解:从基础到高级全面解析
文章目录一、垃圾回收概述1.1为什么需要垃圾回收1.2垃圾回收的基本原理二、对象存活判断算法2.1引用计数法(ReferenceCounting)2.2可达性分析算法(ReachabilityAnalysis)三、垃圾回收算法分类3.1标记-清除算法(Mark-Sweep)3.2复制算法(Copying)3.3标记-整理算法(Mark-Compact)3.4分代收集算法(GenerationalC
- Elasticsearch 分析器(内置分析器,自定义分析器,IK分析器)
Elasticsearch分析器(内置分析器,自定义分析器,IK分析器)内置分析器使用分析器自定义分析器中文分析器(IK分析器)安装使用添加词典内置分析器官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/analysis-analyzers.htmlES内置了一些分析器。默认情况下,一个索引的字段类型为text是,该字段
- Netty中AbstractReferenceCountedByteBuf对AtomicIntegerFieldUpdater的使用
Jooou
java开发语言
AtomicIntegerFieldUpdater使用java.util.concurrent.atomic.AtomicIntegerFieldUpdater是Java并发包中一个非常强大的工具,它允许你以原子方式更新指定对象的volatileint字段,而无需使用锁。这在实现高性能、非阻塞的并发算法时非常有用,就像Netty在其ByteBuf引用计数管理中所做的那样。1.AtomicInteg
- Windows下使用UIAutomation技术遍历桌面窗口和指定窗口内容的AutomationWalker.exe的C#源代码
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows.Automation;//引用"C:\ProgramFiles(x86)\ReferenceAssemb
- 解决VSCode无法加载Json架构问题
使用VSCode打开Json。json内容如下:{"$schema":"https://schemas.wp.org/trunk/theme.json","version":2,"settings":{},"styles":{},"customTemplates":[],"templateParts":[],"patterns":[]}出现警告:Problemsloadingreference'X
- Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo
东风微鸣
️Reference:https://github.com/grafana/intro-to-mlt这是关于Grafana中可观察性的三个支柱的一系列演讲的配套资源库。它以一个自我封闭的Docker沙盒的形式出现,包括在本地机器上运行和实验所提供的服务所需的所有组件。Grafana全栈可观察性产品Grafana全栈可观察性具体的可观察性转换图可观察性转换图前提DockerDockerCompose
- SpringIOC源码(三)——getBean及createBean做了什么
天凉好个球儿
SpringIOC学习(三)getBean()一初始化非懒加载的单例bean二preInstantiateSingletons()1.getMergedLocalBeanDefinition()三doGetBean1.getSingleton(StringbeanName,booleanallowEarlyReference)2.getObjectForBeanInstance()2.1getOb
- null、undefined和未声明变量之间有什么区别?如何检查判断这些状态值?
易易前端
javascript前端vue.js
当你没有提前使用var、let或const声明变量,就为一个变量赋值时,该变量是未声明变量(undeclaredvariables)。未声明变量会脱离当前作用域,成为全局作用域下定义的变量。在严格模式下,给未声明的变量赋值,会抛出ReferenceError错误。和使用全局变量一样,使用未声明变量也是非常不好的做法,应当尽可能避免。要检查判断它们,需要将用到它们的代码放在try/catch语句中。
- [Python]函数调用链中局部变量的内存影响:通过memory_profiler分析
dudly
python编程语言开发语言
在Python编程中,内存管理由解释器自动处理,开发者无需像C或C++那样手动分配和释放内存。然而,在函数调用链中,局部变量持有大型对象的引用可能导致意想不到的内存占用,延迟垃圾回收。本文将探讨局部变量如何在函数调用链中增加内存占用,分析其原因,并展示如何使用memory_profiler工具诊断和优化内存问题。一、Python的内存管理机制Python主要通过引用计数(referencecoun
- VI Server 操控 LabVIEW 工程
用VIServer自动创建并填充LabVIEW工程,借助Project.New创建工程,OpenWindow展示工程浏览器,经MyComputer获取工程项引用,通过AddFile等添加主VI、文件夹及内容,以RecursiveFileList递归取文件,最后用CloseReference规范释放资源,实现LabVIEW工程从无到有的程序化构建,适用于批量、标准化工程创建场景,相比手动操作更高效、
- OEC 刷机Armbain 25.05后配置说明
DHCP调整为固定IPnano/etc/netplan/00-default-use-network-manager.yaml#AddedbyArmbian##Reference:https://netplan.readthedocs.io/en/stable/netplan-yaml/##LetNetworkManagermanagealldevicesonthissystem.#Anydevi
- Java中的值传递 vs 引用传递本质区别
码农小灰
面试题javajava开发语言
目录【导语】面试官到底想考什么?一、值传递和引用传递的本质区别1.值传递(PassbyValue)2.引用传递(PassbyReference)二、Java的“值传递”真相:传的是引用的副本1.基本类型:直接拷贝值2.对象类型:传递引用的副本三、常见误区:别再踩这些坑!误区1:“对象是引用传递”误区2:“数组是引用传递”误区3:“String是特殊引用传递”四、实战案例:覆盖90%的应用场景案例1
- rs build 的process.env的值undefined解决方案
StrongerIrene
javascript开发语言ecmascript
首先,一定要明确,如果新增或者改了一个process.env值,必须要重新构建才能取值,否则会报错UncaughtReferenceError:processisnotdefined但是这个没关系,重启就行了其次,rsbuild的默认export,必须以PUBLIC_开头,就像next的必须以什么NEXT__xxxx开头一样再次,里面获取不到就要在rsbuild.config.ts里加,在sour
- uniApp出现【ReferenceError: computed is not defined】
1·问题uniApp出现【ReferenceError:computedisnotdefined】2·解##标题决在当前页导入:import{computed}from'vue'
- Template execution failed: ReferenceError: name is not defined
An_s
技术(javascript)配置(环境)reactjsvue.jswebpack
问题我们使用了html-webpack-plugin(webpack)进行编译html,导致的错误。排查结果连接地址html-webpack-plugin版本低(2.30.1),html模板里面不能有``符号,注释都不行``//varreg=newRegExp(`(^|&)${name}=([^&]*)(&|$),"i”)这样也不支持varreg=newRegExp(`(^|&)${name}=(
- PowerPCB(PADS)常见问题全集
weixin_33774308
数据库
来自:http://hi.baidu.com/huxianfangyuan/blog/item/01bdff730259c5168701b08d.html1、走线很细,不是设定值`有时将预拉线布好线后,所布的线变成了一根很细的线而不是我们所设定的线宽,但是查看它的属性也还是一样的最小线宽显示值的设定大于route线宽。setup--preferences--global--minimumdispl
- C#8.0—非空引用类型
weixin_30642267
c#
C#8.0—非空引用类型原文:C#8.0—非空引用类型非空引用类型——C#8.0原文地址:https://devblogs.microsoft.com/dotnet/try-out-nullable-reference-types/?utm_source=vs_developer_news&utm_medium=referral该新增的特性最关键的作用是处理泛型和更高级API的使用场景。这些都是我
- C#复习资料
洁辉
c#javajvm
核心目标:理解原理、掌握应用、避开陷阱、应对提问。一、类型系统(TypeSystem)-面试基石&高频考点值类型(ValueTypes)vs引用类型(ReferenceTypes)本质区别:值类型(struct,enum,基本类型如int,double,bool,char,decimal,DateTime):存储:数据本身直接存储在变量位置(通常栈上,或嵌入在引用类型对象中)。赋值/传参:复制整个
- frida objection注入时frida.core.RPCException: ReferenceError: ‘ObjC‘ is not defined解决
马戏团小丑
javaandroid
最新的17.0.xx版本frida进行objection注入时会报错PSC:\Users\19583>objection-gcom.example.hellojniexploreC:\Users\19583\AppData\Local\Programs\Python\Python312\Lib\site-packages\objection\utils\update_checker.py:7:Us
- Redmi 5Plus Liunx(PostmarketOS) Installation Tutorial
Setup1unlockbootloaderReference:https://www.miui.com/unlock/index.htmlNotice:miflush_unlockrequiresawindowsosIftheunlocktooldoesnotrecognizethephone,youneedtoinstallthedrivermanuallyinthedevicemanager
- c++ 编译链接时 报错找不到 某个函数,如何排查?
sun007700
c++chrome开发语言
在C++开发中,链接时出现“undefinedreferenceto”错误是常见问题,以下是系统化的排查流程和解决方案:1.确认基础问题(30秒检查)#检查函数声明是否存在grep"function_name"include/*.hsrc/*.cpp#检查是否包含实现文件ls-lsrc/#确认包含实现的.cpp文件在编译列表中2.签名匹配检查(最常见问题)//头文件声明-voidprocess_d
- C#学习日记
future1412
学习
一、基础概念回顾:值类型变量直接包含值本身,通常分配在栈(Stack)内存中。基本数据类型:int,float,char,bool,enum自定义结构体struct引用类型(ReferenceType)引用类型变量包含的是指向实际对象的引用地址,实际数据位于堆(Heap)内存中。string(虽然看起来像值,但本质是引用类型)数组、类class接口interface、委托delegate结构体(s
- Java开发中,spring mvc 的线程怎么调用?
小麦麦子
springmvc
今天逛知乎,看到最近很多人都在问spring mvc 的线程http://www.maiziedu.com/course/java/ 的启动问题,觉得挺有意思的,那哥们儿问的也听仔细,下面的回答也很详尽,分享出来,希望遇对遇到类似问题的Java开发程序猿有所帮助。
问题:
在用spring mvc架构的网站上,设一线程在虚拟机启动时运行,线程里有一全局
- maven依赖范围
bitcarter
maven
1.test 测试的时候才会依赖,编译和打包不依赖,如junit不被打包
2.compile 只有编译和打包时才会依赖
3.provided 编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包
4.runtime 运行时依赖,编译不依赖
5.默认compile
依赖范围compile是支持传递的,test不支持传递
1.传递的意思是项目A,引用
- Jaxb org.xml.sax.saxparseexception : premature end of file
darrenzhu
xmlprematureJAXB
如果在使用JAXB把xml文件unmarshal成vo(XSD自动生成的vo)时碰到如下错误:
org.xml.sax.saxparseexception : premature end of file
很有可能时你直接读取文件为inputstream,然后将inputstream作为构建unmarshal需要的source参数。InputSource inputSource = new In
- CSS Specificity
周凡杨
html权重Specificitycss
有时候对于页面元素设置了样式,可为什么页面的显示没有匹配上呢? because specificity
CSS 的选择符是有权重的,当不同的选择符的样式设置有冲突时,浏览器会采用权重高的选择符设置的样式。
规则:
HTML标签的权重是1
Class 的权重是10
Id 的权重是100
- java与servlet
g21121
servlet
servlet 搞java web开发的人一定不会陌生,而且大家还会时常用到它。
下面是java官方网站上对servlet的介绍: java官网对于servlet的解释 写道
Java Servlet Technology Overview Servlets are the Java platform technology of choice for extending and enha
- eclipse中安装maven插件
510888780
eclipsemaven
1.首先去官网下载 Maven:
http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.2.3-bin.tar.gz
下载完成之后将其解压,
我将解压后的文件夹:apache-maven-3.2.3,
并将它放在 D:\tools目录下,
即 maven 最终的路径是:D:\tools\apache-mave
- jpa@OneToOne关联关系
布衣凌宇
jpa
Nruser里的pruserid关联到Pruser的主键id,实现对一个表的增删改,另一个表的数据随之增删改。
Nruser实体类
//*****************************************************************
@Entity
@Table(name="nruser")
@DynamicInsert @Dynam
- 我的spring学习笔记11-Spring中关于声明式事务的配置
aijuans
spring事务配置
这两天学到事务管理这一块,结合到之前的terasoluna框架,觉得书本上讲的还是简单阿。我就把我从书本上学到的再结合实际的项目以及网上看到的一些内容,对声明式事务管理做个整理吧。我看得Spring in Action第二版中只提到了用TransactionProxyFactoryBean和<tx:advice/>,定义注释驱动这三种,我承认后两种的内容很好,很强大。但是实际的项目当中
- java 动态代理简单实现
antlove
javahandlerproxydynamicservice
dynamicproxy.service.HelloService
package dynamicproxy.service;
public interface HelloService {
public void sayHello();
}
dynamicproxy.service.impl.HelloServiceImpl
package dynamicp
- JDBC连接数据库
百合不是茶
JDBC编程JAVA操作oracle数据库
如果我们要想连接oracle公司的数据库,就要首先下载oralce公司的驱动程序,将这个驱动程序的jar包导入到我们工程中;
JDBC链接数据库的代码和固定写法;
1,加载oracle数据库的驱动;
&nb
- 单例模式中的多线程分析
bijian1013
javathread多线程java多线程
谈到单例模式,我们立马会想到饿汉式和懒汉式加载,所谓饿汉式就是在创建类时就创建好了实例,懒汉式在获取实例时才去创建实例,即延迟加载。
饿汉式:
package com.bijian.study;
public class Singleton {
private Singleton() {
}
// 注意这是private 只供内部调用
private static
- javascript读取和修改原型特别需要注意原型的读写不具有对等性
bijian1013
JavaScriptprototype
对于从原型对象继承而来的成员,其读和写具有内在的不对等性。比如有一个对象A,假设它的原型对象是B,B的原型对象是null。如果我们需要读取A对象的name属性值,那么JS会优先在A中查找,如果找到了name属性那么就返回;如果A中没有name属性,那么就到原型B中查找name,如果找到了就返回;如果原型B中也没有
- 【持久化框架MyBatis3六】MyBatis3集成第三方DataSource
bit1129
dataSource
MyBatis内置了数据源的支持,如:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<data
- 我程序中用到的urldecode和base64decode,MD5
bitcarter
cMD5base64decodeurldecode
这里是base64decode和urldecode,Md5在附件中。因为我是在后台所以需要解码:
string Base64Decode(const char* Data,int DataByte,int& OutByte)
{
//解码表
const char DecodeTable[] =
{
0, 0, 0, 0, 0, 0
- 腾讯资深运维专家周小军:QQ与微信架构的惊天秘密
ronin47
社交领域一直是互联网创业的大热门,从PC到移动端,从OICQ、MSN到QQ。到了移动互联网时代,社交领域应用开始彻底爆发,直奔黄金期。腾讯在过去几年里,社交平台更是火到爆,QQ和微信坐拥几亿的粉丝,QQ空间和朋友圈各种刷屏,写心得,晒照片,秀视频,那么谁来为企鹅保驾护航呢?支撑QQ和微信海量数据背后的架构又有哪些惊天内幕呢?本期大讲堂的内容来自今年2月份ChinaUnix对腾讯社交网络运营服务中心
- java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素
bylijinnan
java
public class MinOfShiftedArray {
/**
* Q69 旋转数组的最小元素
* 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。
* 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。
*/
publ
- 看博客,应该是有方向的
Cb123456
反省看博客
看博客,应该是有方向的:
我现在就复习以前的,在补补以前不会的,现在还不会的,同时完善完善项目,也看看别人的博客.
我刚突然想到的:
1.应该看计算机组成原理,数据结构,一些算法,还有关于android,java的。
2.对于我,也快大四了,看一些职业规划的,以及一些学习的经验,看看别人的工作总结的.
为什么要写
- [开源与商业]做开源项目的人生活上一定要朴素,尽量减少对官方和商业体系的依赖
comsci
开源项目
为什么这样说呢? 因为科学和技术的发展有时候需要一个平缓和长期的积累过程,但是行政和商业体系本身充满各种不稳定性和不确定性,如果你希望长期从事某个科研项目,但是却又必须依赖于某种行政和商业体系,那其中的过程必定充满各种风险。。。
所以,为避免这种不确定性风险,我
- 一个 sql优化 ([精华] 一个查询优化的分析调整全过程!很值得一看 )
cwqcwqmax9
sql
见 http://www.itpub.net/forum.php?mod=viewthread&tid=239011
Web翻页优化实例
提交时间: 2004-6-18 15:37:49 回复 发消息
环境:
Linux ve
- Hibernat and Ibatis
dashuaifu
Hibernateibatis
Hibernate VS iBATIS 简介 Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05。它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS 是另外一种优秀的O/R mapping框架,当前版本是2.0。目前属于apache的一个子项目了。 相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mappi
- 备份MYSQL脚本
dcj3sjt126com
mysql
#!/bin/sh
# this shell to backup mysql
#
[email protected] (QQ:1413161683 DuChengJiu)
_dbDir=/var/lib/mysql/
_today=`date +%w`
_bakDir=/usr/backup/$_today
[ ! -d $_bakDir ] && mkdir -p
- iOS第三方开源库的吐槽和备忘
dcj3sjt126com
ios
转自
ibireme的博客 做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽。 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。 首先整理了一份
Github上排名靠
- html wlwmanifest.xml
eoems
htmlxml
所谓优化wp_head()就是把从wp_head中移除不需要元素,同时也可以加快速度。
步骤:
加入到function.php
remove_action('wp_head', 'wp_generator');
//wp-generator移除wordpress的版本号,本身blog的版本号没什么意义,但是如果让恶意玩家看到,可能会用官网公布的漏洞攻击blog
remov
- 浅谈Java定时器发展
hacksin
java并发timer定时器
java在jdk1.3中推出了定时器类Timer,而后在jdk1.5后由Dou Lea从新开发出了支持多线程的ScheduleThreadPoolExecutor,从后者的表现来看,可以考虑完全替代Timer了。
Timer与ScheduleThreadPoolExecutor对比:
1.
Timer始于jdk1.3,其原理是利用一个TimerTask数组当作队列
- 移动端页面侧边导航滑入效果
ini
jqueryWebhtml5cssjavascirpt
效果体验:http://hovertree.com/texiao/mobile/2.htm可以使用移动设备浏览器查看效果。效果使用到jquery-2.1.4.min.js,该版本的jQuery库是用于支持HTML5的浏览器上,不再兼容IE8以前的浏览器,现在移动端浏览器一般都支持HTML5,所以使用该jQuery没问题。HTML文件代码:
<!DOCTYPE html>
<h
- AspectJ+Javasist记录日志
kane_xie
aspectjjavasist
在项目中碰到这样一个需求,对一个服务类的每一个方法,在方法开始和结束的时候分别记录一条日志,内容包括方法名,参数名+参数值以及方法执行的时间。
@Override
public String get(String key) {
// long start = System.currentTimeMillis();
// System.out.println("Be
- redis学习笔记
MJC410621
redisNoSQL
1)nosql数据库主要由以下特点:非关系型的、分布式的、开源的、水平可扩展的。
1,处理超大量的数据
2,运行在便宜的PC服务器集群上,
3,击碎了性能瓶颈。
1)对数据高并发读写。
2)对海量数据的高效率存储和访问。
3)对数据的高扩展性和高可用性。
redis支持的类型:
Sring 类型
set name lijie
get name lijie
set na
- 使用redis实现分布式锁
qifeifei
在多节点的系统中,如何实现分布式锁机制,其中用redis来实现是很好的方法之一,我们先来看一下jedis包中,有个类名BinaryJedis,它有个方法如下:
public Long setnx(final byte[] key, final byte[] value) {
checkIsInMulti();
client.setnx(key, value);
ret
- BI并非万能,中层业务管理报表要另辟蹊径
张老师的菜
大数据BI商业智能信息化
BI是商业智能的缩写,是可以帮助企业做出明智的业务经营决策的工具,其数据来源于各个业务系统,如ERP、CRM、SCM、进销存、HER、OA等。
BI系统不同于传统的管理信息系统,他号称是一个整体应用的解决方案,是融入管理思想的强大系统:有着系统整体的设计思想,支持对所有
- 安装rvm后出现rvm not a function 或者ruby -v后提示没安装ruby的问题
wudixiaotie
function
1.在~/.bashrc最后加入
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
2.重新启动terminal输入:
rvm use ruby-2.2.1 --default
把当前安装的ruby版本设为默