V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  CRVV  ›  全部回复第 22 页 / 共 28 页
回复总数  541
1 ... 14  15  16  17  18  19  20  21  22  23 ... 28  
2017-02-08 18:53:38 +08:00
回复了 banxi1988 创建的主题 Go 编程语言 Go 与 泛型: 优点 or 缺陷
@bigpigeon

1. 比如 C++ 的容器和算法,用没有泛型的语言来实现会很麻烦。对比一下 std::sort 和 qsort 两个函数, std::sort 用起来简单得多

2. 还是上面的 std::sort 和 qsort , std::sort 的性能更好,是因为这个情况下一些函数内联的优化依赖于泛型
2017-02-08 14:01:28 +08:00
回复了 banxi1988 创建的主题 Go 编程语言 Go 与 泛型: 优点 or 缺陷
@gamexg

"另外错误部分也比较坑,像是标准库网络错误,想要确定具体的错误类型居然要用字符串查找... "

1. 字符串查找是错误的方法,因为返回的字符串依赖于操作系统和操作系统的语言设置

2. 同样的错误,不同的操作系统会返回不同的结果,有的错误只存在于部分操作系统上,如果要做一个完全和操作系统无关的 net 库,这个问题就很难解决.

比如 Java 的 ‘ new ServerSocket()’ 会抛 java.net.BindException ,这个异常的原因可能是 EADDRINUSE 或者 EACCES ,也区分不出来

3. 2 里的例子,用 Go 可以区分,只是比较麻烦,并且依赖于特定的 Go 版本。能在 1.7 上用的代码是

```
_, err := net.Listen("tcp", "localhost:123")
if opErr, ok := err.(*net.OpError); ok {
if syscallErr, ok := opErr.Err.(*os.SyscallError); ok {
if errNo, ok := syscallErr.Err.(syscall.Errno); ok {
switch errNo {
case unix.EADDRINUSE:
println("EADDRINUSE")
case unix.EACCES:
println("EACCES")
}
}
}
}
```

结论是,这不是 Go 的问题
2017-02-08 12:29:03 +08:00
回复了 banxi1988 创建的主题 Go 编程语言 Go 与 泛型: 优点 or 缺陷
@noli

我仅仅是回复了 “ golang 除了写 业务 server 之外,没有想到任何别的场合是能用的” ,表达一下 Go 还有其它的场合“能用” 而已

我没说 Go 在这两个场合好用,我也没说它是一个好语言,我也没说它比任何一个语言好

你这回复得莫名其妙
2017-02-08 12:13:11 +08:00
回复了 banxi1988 创建的主题 Go 编程语言 Go 与 泛型: 优点 or 缺陷
@hjc4869

这话怎么这么奇怪

C, C++, C#, Java, JavaScript, Python, Ruby, Haskell 都缺失了 Common Lisp 的宏
Common Lisp 缺失了 Haskell 的 Type Inference


请问 2017 年应该用什么语言?
2017-02-08 12:02:37 +08:00
回复了 banxi1988 创建的主题 Go 编程语言 Go 与 泛型: 优点 or 缺陷
@noli
我觉得 docker 还不错,至少能用
Go 的编译器我也用着没发现有什么问题

这俩不算 “业务 server ” 吧?
"""
招聘要求:不限学历,不限工龄,... ...

招聘只接受 p6 (对标阿里 p6 )及以上人员,应届生及初级工程师此次不招聘,谢谢!
"""

互相矛盾的话居然在相邻的两行
2017-02-06 14:28:38 +08:00
回复了 twogoods 创建的主题 程序员 关于数据库的存储过程 or 数据最佳实践?
@CRVV

说错了

刚试了一下, 在 PostgreSQL 上, 用 SERIALIZABLE 的事务,先 SELECT * FROM table WHERE v = value, 如果没有重复的再插入, 也可以保证唯一
不一定非要用 UNIQUE INDEX

当然, 我猜 SERIALIZABLE 事务的开销比 UNIQUE INDEX 大
2017-02-06 14:19:24 +08:00
回复了 twogoods 创建的主题 程序员 关于数据库的存储过程 or 数据最佳实践?
“需要查重”

我怎么觉得,在通常情况下,使用 UNIQUE INDEX 是这件事的唯一方案
2017-02-01 11:00:00 +08:00
回复了 davidway 创建的主题 Java 潜水了很久,水一个帖子:一个刚毕业的 Java 程序员的迷茫
推荐楼主再去学学其它语言,比如 Python, Haskell, SQL ,用这些语言写写最开始学 C 的时候写的最简单的程序,我估计会有些好处
2017-01-25 19:14:08 +08:00
回复了 jybox 创建的主题 分享创造 抛砖引玉:如何实现绝对公平的年会抽奖程序
@herozhang
random.org 有 DigiCert 签的证书
我觉得如果能信任浏览器和操作系统是正经的,通过证书就能确定不是假网站
2016-12-30 20:09:40 +08:00
回复了 kopp123 创建的主题 Go 编程语言 一段 golang 代码不太懂就 golang 大牛解读
https://golang.org/doc/effective_go.html#channels

和楼主问的问题完全一样的例子
2016-12-27 23:16:01 +08:00
回复了 bytest 创建的主题 Python 关于 python 里的值传递
从行为来说, immutable 的类型和值类型一样, mutable 的类型和指针一样
正经的解释当然是名字绑定什么的那些
等价的 C++ 代码大概是:
```
#include <iostream>
#include <vector>

template<typename T> void print(T& arg) {
std::cout << arg << ", ";
}
template<typename T> void print(std::vector<T>* list) {
for (auto& i : *list) {
print(i);
}
std::cout << std::endl;
}

std::vector<int>* range(int length) {
auto result = new std::vector<int>();
for (int i = 0; i < length; ++i) {
result->push_back(i);
}
return result;
}
int main() {
auto list1 = range(5);
print(list1);
for (auto i : *list1) {
i = 100;
}
print(list1);

auto list2 = new std::vector<std::vector<int>*>();
for (int i = 0; i < 5; ++i) {
list2->push_back(range(i));
}
print(list2);
for (auto i : *list2) {
i->push_back(-1);
}
print(list2);
for (auto i : *list2) {
i = range(0);
}
print(list2);
return 0;
}
```
2016-12-21 20:26:55 +08:00
回复了 bboysoul 创建的主题 程序员 求在 linux 下运行部落 冲突的解决办法
我之前在 Windows 8 上装 VMware Player ,里面是 Windows 7 ,然后用 Bluestacks 跑过 coc
VMware 的虚拟机怎么跑应该和外面的操作系统关系不大,我猜在 Linux 上也能用
Node.js 系列的软件质量通常很烂,拼错个单词有什么奇怪的

看一下 Node.js 的版本数量,多久一个版本。和其它随便一个什么语言对比一下,再看看 Changlog ,搜索 fix ,就能发现差距有多么大
2016-11-12 20:33:56 +08:00
回复了 testcaoy7 创建的主题 DNS V2EX 的 DNS 支不支持 5353 口的查询?
不支持

这种事情试一下就知道了,哪用得着来问
drill v2ex.com @178.79.131.110 -p 5353
1 ... 14  15  16  17  18  19  20  21  22  23 ... 28  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1219 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 18:14 · PVG 02:14 · LAX 10:14 · JFK 13:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.