error

golang: 详解interface和nil

ぃ、小莉子 提交于 2019-12-01 14:55:22
golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方有明确的说明: http://pkg.golang.org/pkg/builtin/#Type golang中的interface类似于java的interface、PHP的interface或C++的纯虚基类。接口就是一个协议,规定了一组成员。这个没什么好说的,本文不打算对宏观上的接口概念和基于接口的范式编程做剖析。golang语言的接口有其独到之处:只要类型T的公开方法完全满足接口I的要求,就可以把类型T的对象用在需要接口I的地方。这种做法的学名叫做 Structural Typing ,有人也把它看作是一种静态的Duck Typing。所谓类型T的公开方法完全满足接口I的要求,也即是类型T实现了接口I所规定的一组成员。 在底层,interface作为两个成员来实现,一个类型和一个值。对此官方也有文档说明: http://golang.org/doc/go_faq.html#nil_error ,如果您不习惯看英文,这里有一篇柴大的翻译:

JAVA 日志系统【 logback]

…衆ロ難τιáo~ 提交于 2019-12-01 13:02:50
Logback浅析 1、 Logback 为取代 log4j 而生 Logback是由 log4j 创始人 Ceki Gülcü 设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。 2、Logback的核心对象:Logger、Appender、Layout Logback主要 建立于 Logger 、 Appender 和 Layout 这三个类之上。 Logger: 日志的记录器,把它关联到应用的对应的 context 上后,主要用于存放日志对象,也可以定义日志类型、级别。Logger对象一般多定义为静态常量,如: 1 package com.logs; 2 3 import org.slf4j.Logger; 4 import org.slf4j.LoggerFactory; 5 6 public class MyApp { 7 final static Logger logger = LoggerFactory.getLogger("MyApp.class"); 8 public static void main(String[] args) { 9 10 logger.trace("trace");11 logger.debug("debug str");12 logger

关于python报错ERROR:ERROR: Could not find a version that satisfies the requirement tensorflow

三世轮回 提交于 2019-12-01 12:42:29
报错: ERROR: Could not find a version that satisfies the requirement tensorflow (from versions: none) ERROR: No matching distribution found for tensorflow 可能是因为python版本、tensorflow版本不一样导致的,但如果仔仔细细检查完了没有任何错误 那么可能是因为pip安装的whl包的名字不满足系统条件, 关于什么是满足的可以进入python后输入: >>> import wheel.pep425tags >>> print(wheel.pep425tags.get_supported()) [('cp27', 'cp27m', 'linux_x86_64'), ('cp27', 'none', 'linux_x86_64'), ('cp27', 'none', 'any'), ('cp2', 'none', 'any'), ('cp26', 'none', 'any'), ('cp25', 'none', 'any'), ('cp24', 'none', 'any'), ('cp23', 'none', 'any'), ('cp22', 'none', 'any'), ('cp21', 'none', 'any'), (

c++继承方式和类型兼容的学习

。_饼干妹妹 提交于 2019-12-01 07:07:03
继承方式 公有继承:公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都 保持原有的状态 ,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。 私有继承:私有继承的特点是基类的共有成员和保护成员在继承时都 作为派生类的私有成员 ,派生类的其他成员可以访问,但派生类的对象不可以访问,值得一提的是如果派生类继续作为基类进行派生,基类得全部成员在新的派生类中都无法访问,实际上是中断了基类的继续派生 保护继承:保护继承的特点是基类的共有成员和保护成员在继承时都 作为派生类的保护成员 ,而派生类的私有成员不可直接访问 保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。 下面列出三种不同的继承方式的基类特性和派生类特性。 public protected private 共有继承 public protected 不可见 私有继承 private private 不可见 保护继承 protected protected 不可见 ​ 下面举个栗子😸 公有继承: #include<iostream> using namespace std; //////////////////////////////////////////////////////////////////////////

运行 puppeteer 报错 chrome: error while loading shared libraries: libpangocairo-1.0.so.0: cannot open shared object file: No such file or directory

十年热恋 提交于 2019-11-30 22:57:19
运行 puppeteer 报错 chrome: error while loading shared libraries: libpangocairo-1.0.so.0: cannot open shared object file: No such file or directory [root@eus_aps_crawler01:/data/www/vhosts/aps_task/httpdocs]# node test.js (node:5490) UnhandledPromiseRejectionWarning: Error: Failed to launch chrome! /data/www/vhosts/aps_task/httpdocs/node_modules/puppeteer/.local-chromium/linux-686378/chrome-linux/chrome: error while loading shared libraries: libpangocairo-1.0.so.0: cannot open shared object file: No such file or directory TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs