rollback

rollback 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 个人简介什么都没有

个人动态

rollback 赞了文章 · 2020-03-18

go-可变参数

今天在尝试用go写一个简单的orm的时候 发现 在调用可变参数函数时,不是总能使用省略号将一个切片展开,有时候编译器可能会报错 再此用几个简单的例子作为说明

当不太确定数据类型的时候我们通常采用空接口

tests1(789)
fmt.Println("-------------")
tests1("789")
func tests1(arg interface{}) {
    fmt.Println("value:", arg)
    fmt.Println("type:", reflect.TypeOf(arg).Name())
}

输出结果

value: 789
type: int
-------------
value: 789
type: string

在使用相同类型的可变入参时

tests([]string{"4", "5", "6"}...)
func tests(args ...string) {
    for i, v := range args {
        fmt.Println(i, "----", v)
    }
}

输出结果

0 ---- 4
1 ---- 5
2 ---- 6

当使用interface{}作为可变入参时

func testParams(args ...interface{}) {
    for i, v := range args {
        if s, ok := v.(string); ok {
            fmt.Println("----", s)
        }
        if s, ok := v.([]string); ok {
            for i, v := range s {
                fmt.Println(i, "[]----", v)
            }
        }
        fmt.Println(i, v)
    }
}

出现错误

cannot use []string literal (type []string) as type []interface {} in argument to testParams      

当看到这里时候答案已经露出水面了
这里提供两种解决方案

第一种方法

s := []string{"4", "5", "6"}
var d []interface{} = []interface{}{s[0], s[1], s[2]}
testParams(d...)

结果

---- 4
0 4
---- 5
1 5
---- 6
2 6

第二种方法

s := []string{"4", "5", "6"}
var d []interface{}
d = append(d, s)
testParams(d...)

结果

0 []---- 4
1 []---- 5
2 []---- 6
0 [4 5 6]

总结: 在使用interface{}作为可变入参时 传入的参数要做类型转换

查看原文

赞 3 收藏 3 评论 1

rollback 发布了文章 · 2016-09-07

Postman 挂起问题解决

0.

使用Postman发起请求,一直挂起

1.

Google之,找到Postman之前的一个Issue
根据描述推测是Interceptor插件的问题。

查看自己Postman的状态,发现:

  1. Postman的Interceptor在启用状态

  2. Chrome中的Interceptor插件在启用状态
    所以不存在找不到的问题。

在Chrome中禁用并重新启用Interceptor插件,恢复。

X. 参考链接如下

查看原文

赞 0 收藏 0 评论 0

rollback 发布了文章 · 2016-08-23

linux 无线网卡相关实用命令

iwconfig <interface> txpower [on|off] 打开/关闭无线网卡电源

iwlist <interface> scan 扫描无线网络

查看原文

赞 0 收藏 0 评论 0

rollback 发布了文章 · 2016-07-27

Octave: 'rgb2gray' undefined error

1

原因是没有安装或加载Image包

2

安装image包,在SourceForge下载。

3

在Octave命令行中运行pkg load image

查看原文

赞 0 收藏 0 评论 0

rollback 发布了文章 · 2016-07-27

MATLAB 笔记摘要

0. Basics

  1. 赋单个值:a = 1

  2. (内部函数):d=cos(a)

  3. 特殊变量:ans

  4. 分号,阻止输出:;e = a * d;

  5. (命令行工具): and arrow

  6. 所有MATLAB变量都是多维数组,其中矩阵是二维数组

  7. 创建数组:a = [1 2 3 4](空格分隔元素)a = [1,2,3,4](逗号分隔元素)这里a是个行向量(row vector)

  8. 创建矩阵(1),用分号分隔行:a = [1 2 3; 4 5 6; 7 8 10]a = [1,2,3; 4,5,6; 7,8,10]

  9. 创建矩阵(2),用内置函数(ones, zeros, rand, ...):z = zeros(5, 1)(5行1列全是0的矩阵)(ones, rand用法也差不多。这几个函数都有很多变体)

  10. 创建矩阵(3),记一个生成幻方矩阵的函数magicmagic(4) := [16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1]

  11. 矩阵+数,矩阵里每个元素+数:a = [1 2 3; 4 5 6]; b = a + 10;b := [11 12 13; 14 15 16]

  12. 对矩阵应用单参数函数(如sin),对矩阵里每个元素应用该函数:a = [1 2; 3 4]; b = sin(a);b := [sin(1) sin(2); sin(3) sin(4)]

  13. 矩阵转置操作符'a = [1 2; 3 4]; b = a';b := [1 3; 2 4]

  14. (名词解释):inverse, 矩阵的逆inv;identity matrix, 单位矩阵

  15. (内部原理1):MATLAB使用浮点类型存数,可能有精度问题

  16. format命令,控制显示格式:format longformat short等(均不改变数值的内部表示)

  17. 矩阵点乘.*,对应元素分别相乘:a = [1 2 3; 4 5 6]; b = [5 4 3; 2 1 0]; c = a .* b;c := [5 8 9; 8 5 0]

  18. 矩阵点除./,对应元素分别相除;矩阵点幂.^,对应元素分别求幂

  19. 矩阵连接(concatenation),矩阵连接成一个大矩阵:a = [1 2 3; 4 5 6]; aa1 = [a a]; aa2 = [a; a];aa1 := [1 2 3 1 2 3; 4 5 6 4 5 6]; aa2 := [1 2 3; 4 5 6; 1 2 3; 4 5 6]

  20. 虚数:sqrt(-1) := 0 + 1i

  21. i/j,特殊变量,默认表示虚数单位,MATLAB中可以被赋值(最好别...)

  22. 虚数a+bi/ja = 0 + 2.5j; b = [3 + 2j 6 + 10j];

  23. 矩阵索引(1),按维度索引:a = magic(4); a(4, 2) := 14(先行后列)

  24. 矩阵索引(2),线性索引:a = magic(4); a(12) := 15(一列一列indexing)

  25. 矩阵索引(3),索引从1开始

  26. 矩阵索引(4)——取值(等号右的索引),不能超过数组维度

  27. 矩阵索引(5)——赋值(等号左的索引),可以超过数组维度,赋值后会扩展矩阵,用0填充其余元素位置

  28. 冒号操作符(1)——取范围:2:3 := [2 3]; 1:4 := [1 2 3 4]

  29. 冒号操作符(2)——用于矩阵索引:a = magic(4); a(1:3, 2) := a([1 2 3], 2); a(3, :) := a(3, 1:4) := a(3, [1 2 3 4])

  30. 冒号操作符(3)——三元操作符<start>:<step>:<end(INCLUDED)>0:10:40 := [0 10 20 30 40](二元时候相当于省略step,此时step为1)

  31. 查看变量(workspace variables):whos

  32. 保存变量到文件,加载变量文件到workspace variables:save ***.matload ***.mat

  33. 字符串(1):a = 'doge'

  34. 字符串(2)串中的单/双引号:good_doge = 'doge''s good'(也可以单双引号交叉使用)

  35. 字符串(3)拼接:good_doge = ['do' 'ge']; good_doge := 'doge'

  36. 字符串(4)数字转换成字符串:num2strint2str

  37. 函数调用(1)多返回值:A = [1 3 5]; [maxA, location] = max(A);maxA := 5; location := 3

  38. 函数调用(2)也可以只接收返回值的其一:max(A) := 5

  39. 函数调用(3)无参数时不必写括号

  40. 清除屏幕函数:clc(无参数)

  41. plot(1):plot(x坐标们,y坐标们)

  42. plot(2):plot(x坐标们,y坐标们,线样式如'g--' 'r:*')

  43. plot(3):标注(xlabel('...')ylabel('...')title('...')legend('...', ...)

  44. plot(4):每次plot动作时,默认会清除图里的所有内容包括label

  45. plot(5)保留plot内容:hold on 对应,hold off

(从这里开始,变得没有耐心了)

  1. 函数

function [ret, val, list] = func_name(para, list)
...
end
function no_ret_val_func(para, list)

零碎

  • [THETA, R] = cart2pol(X, Y)直角坐标转换极坐标

查看原文

赞 1 收藏 1 评论 0

rollback 发布了文章 · 2016-07-12

MySQL Table is marked as crashed and should be repaired

0.

Table './DB_name/table_name' is marked as crashed and should be repaired

1. 解决办法

$ mysqlcheck --repair --all-databases

参考链接

参考链接1

查看原文

赞 0 收藏 0 评论 0

rollback 发布了文章 · 2016-07-04

jquery chosen 插件 动态设置+更新选项值

0

我要在表单里使用一个select下拉菜单(是不是multiple无所谓),所以选择了jquery chosen这个插件。
现在有一个需求,需要根据表单的另一个域来动态加载该select元素的选项。

1

于是很容易的开始下面几步(当然可以在F12调试工具下单步试验,效果佳):

// $.ajax({ ... success: function() { ...

// 清空select选项集
$("#select_elem").empty();

// 更新select选项(省略...)

光这样还不够。.empty()只能清空原生select元素的选项,不能更新chosen插件生成的选项框。
此时的效果是,点击下拉框中的备选项,备选项不会出现在已选框里,且备选项中的该项消失,控制台报错:

chosen.jquery.js:410 Uncaught TypeError: Cannot set property 'selected' of undefined

2

于是查到可以在更新select元素后再这样一下:

$("#select_elem").chosen("destroy")

还有的说

$("#select_elem").chosen("destroy").init()

俱无卵用。

3

继续查,查到使用$().trigger()方法

$("#select_elem").trigger("liszt:updated")    /* 试验可用 */

一说新版:

$("#select_elem").trigger("chosen:updated")

试验中,前者可用。

4

综上,

// $.ajax({ ... success: function() { ...

$("#select_elem").empty();
/* 添加新select选项(省略) */
$("#select_elem").trigger("liszt:updated");

// } });

References

参考链接1
参考链接2(特别鸣谢:-))

查看原文

赞 2 收藏 2 评论 2

rollback 发布了文章 · 2016-01-20

编译uvccapture失败:linux/videodev.h: No such file or directory

0

fatal error: linux/videodev.h: No such file or directory

1

搜索问题,发现应该安装v4l(Video for Linux)的开发库。
Debian系:

$ sudo apt-get install libv4l-dev

RH系:

$ sudo yum install libv4l-devel

Arch:

$ sudo pacman -S v4l-utils

2

安装后发现/usr/include/目录下存在以下几个头文件:

libv4l1.h
libv4l1-videodev.h
libv4l2.h
libv4l2rds.h
libv4lconvert.h
libv4l-plugin.h

建立软链接

$ sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

Edit: 我发现自己的/usr/include/linux/目录下有videodev2.h文件,于是先尝试给此文件建立软链接:

$ sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

重新make,成功。

References

参考回答

查看原文

赞 0 收藏 2 评论 1

rollback 发布了文章 · 2016-01-19

python3.x安装cv2失败

0

想给python3装一个opencv的库,结果捣鼓半天,倒给python2.x装上cv2了,而python3里import cv2则一直失败。

1

首先想到动态链接库,于是添加/usr/lib/python3.5/site-packagesld.so.conf中。
失败。

在网上搜到有答案说要安装python头文件。我查看/usr/include,有python3.5m目录,包含头文件。
于是想不是这个问题。

然后想到查看lib中的site-packages目录。于是比较/usr/lib/python3.5/site-packages/usr/lib/python2.7/site-packages目录。发现2.7中有cv2.so,而安装了cv2的python3里只有一个egg-info目录。于是想可能是这个缺.so文件的问题。
同时在网上看到一答案,指出:对于执行import cv2出现的找不到相关模块的问题其实在OpenCV本身的网站上就有说明:
“Python 2.6 bindings for OpenCV are included within the package, but not installed. You can copy the subdirectory opencv/Python2.6/Lib/site-packages into the respective directory of the Python installation. This procedure will be automated in the next OpenCV update. ”
即我们只需要把OpenCV安装目录下的Python2.6/Lib/site-packages中的文件拷贝到Python2.6安装目录下的Lib/site-packages即可。
把该解决方法套用过来,将OpenCV安装目录下(我的是/usr/local/lib(/python3.5/site-packages))的cv2.cpython-35m-x86_64-linux-gnu.so文件拷贝到python3.5安装目录下的lib/sige-packages目录下(我的是/usr/lib/python3.5/site-packages)即可。
拷贝过去,测试import cv2,成功,问题解决。

References

启发文章

查看原文

赞 0 收藏 2 评论 3

rollback 发布了文章 · 2016-01-19

[转][整理]fcitx中文输入法-全角中括号

0

新安装的fcitx,在中文输入法状态时,[]打出的字符为·/

1

编辑/usr/share/fcitx/data/punc.mb.zh_CN文件。将

[ ·
] 「 」

改成

[ 【
]  】

,保存后重启fcitx即可。

References

原文出处

查看原文

赞 1 收藏 0 评论 0

认证与成就

  • 获得 8 次点赞
  • 获得 0 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 0 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2014-08-18
个人主页被 416 人浏览