Groovy笔记(一)之基础
文章目录
- 基础
- 基本类型
- javaBean
- 操作符
- 实现接口
- trait关键字
- 代码生成注解
- 陷阱
基础
-
默认导入: Groovy自动导入以下包或者类
java.io.*java.lang.*java.math.BigDecimaljava.math.BigIntegerjava.net.*java.util.*groovy.lang.*groovy.util.*
-
groovy中分号(;)是可选的,一行中有多条语句时,分号还是必须的。groovy扩展了JDK,这些扩展称作GDK(或者groovy GDK)
-
循环简化
public class HellWorld{public static void main(String[] args) {//1 常规java写法for(int i=0;i<3;i++){System.out.println("Hello World " + i)}//2 groovy 中的Range对象 1等价于2for(i in 0..2){println("Hello World $i")}/**3 groovy向java.lang.Integer添加了一个upto方法,可用于迭代* $it 代表进行循环时的索引值*/0.upto(2){ println("Hello World $it")}//4 1234等价0.times { println("Hello World $it") }//5 01230.step(4,1){print "$it"}def x = 0for ( i in [0, 1, 2, 3, 4] ) {x += i}def array = (0..4).toArray()x = 0for ( i in array ) {x += i}}}
-
空判断:经常需要检查引用是否为空(null),使用?.操作符可以简化,只有当引用不为null的时候才会调用指定的方法或属性.在空引用上调用?.不会发生空指针异常
String str = nullprint str?.hello
-
groovy不强制我们捕获非检查异常
def class ExceptionHandle {public static void main(String[] args) {openFile("aa")}def static openFile(String file) {new FileInputStream(file)}}
-
静态方法内可以使用this来引用Class对象,static方法返回this可以链式调用
public class ClassTest {def static hello(String name){println(name)return this}def static world(String name){println(name)return this}public static void main(String[] args) {//hello//helloClassTest.hello("hello").hello("hello")}}
-
灵活初始化与具名参数:在构造对象时,可以简单地以逗号分隔的名值对来给出属性值。如果类有一个无参数构造器,该操作会在构造器之后执行。也可以设计自己的方法,是其接受具名参数,要利用这一特性,需要把第一个形参定义为Map
def class Dog{//def age,height,widthdef println(age,height,width){println("打印 age:$age,height:$height,width:$width ")}public static void main(String[] args) {//groovy 为我们创建了灵活的构造器def Dog dog = new Dog(age:11,height: 100,width: 20)//输出: 11,20,100println("$dog.age,$dog.width,$dog.height")//输出:[age:11, height:200, width:30]dog.println(age:11,height:200,width:30)//可以修改参数的顺序,输出:[width:30, height:200, age:11]dog.println(width:30,height:200,age:11)//输出: 打印 age:[width:30, height:200, age:11],height:10,width:15//如果发送的实参个数多于方法的参数的个数,而且多出的实参是明值对,那么//groovy会假设方法的第一个形参是一个Map,然后将实参列表中的所有名值对组织//到一起,作为第一个形参的值dog.println(width:30,height:200,age:11,10,15)//输出: 打印 age:11,height:200,width:30 //如果想使用具名参数,最好只接受一个Map形参,而不要混用不同的形参dog.println(11,200,30)}}
-
可选形参:定义可选形参,只需要在形参列表中给它赋上一个值,可以为最后一个形参提供零个或多个值
def class Log {//定义可选形参,只需要在形参列表中给它赋上一个值def static log(x,base=10){println(x+base)}//可以为最后一个形参提供零个或多个值def static log2(x,String[] base){println("$x,$base");}def static log3(x,int[] base){int sum = x;for(int i=0;i<base.length;i++){sum = sum+base[i]}println("$sum")}public static void main(String[] args) {//20Log.log(10)//30Log.log(10,20)//10,[1, 2, 3]Log.log2(10,"1","2","3")//26Log.log3(20,1,2,3)}}
-
多赋值
def class Student{def static name(fullName){fullName.split(" ")}public static void main(String[] args) {//返回一个数组def(firstName,lastName)=Student.name("Tom Bond")//要将结果设置到两个变量中,不必创建临时变量并编写多条赋值语句//Tom,Bondprintln("$firstName,$lastName")//可以使用该特性交换两个变量,无需创建中间变量来保存被交换的值def age = 11,age2=12(age,age2)=[age2,age]//age:12,age2:11println("age:$age,age2:$age2")//变量与值不匹配,groovy会将多余的变量设置为null,左边只有两个变量//所以和面的CC和DD被丢弃def(String A,String B)=["AA","BB","CC","DD"]//AA,BBprintln("$A,$B")//AA,BB,null .如果多余的变量不能设置为null,则会抛出异常def(String AA,String BB,String CC)=["AA","BB"]println("$AA,$BB,$CC")}}
-
总结
- return语句总是可选的
- 分号分隔语句是可选的
- 方法和类默认是public的
- ?. 操作符只有对象引用不为空时才会分派调用
- 可以使用具名参数初始化javaBean
- Groovy不强迫我们捕获不关心的异常,异常会传递给调用者
- 静态方法内可以使用this来引用Class对象,static方法返回this可以链式调用,如下:
基本类型
-
Groovy
支持整数和浮点数,整数是Integer
的实例,浮点数是BigDecimal
的实例.两个整数的除法运算会得到一个浮点数,即使结果可能是一个整数,比如6/3=2.0而不是2。如果想获得两个整型值相除的整数部分,必须调用**intdiv()**方法class Num {public static final void main(String[] args){//2println 4/2//2.5println 5/2//2println 5.intdiv(2)//2println 4.intdiv(2) //1println 5%2}}
-
布尔求值
def class BooleanValueTest {int age = 10;boolean asBoolean() {age > 10 ? true : false}public static void main(String[] args) {/*** groovy尝试推断,如果引用为null则为false* 非null的值视作true。如果引用不为空,还与对象* 的类型有关。如果一个集合比如ArrayList,groovy* 会检查集合是否为空,即使对象不为空,集合为空,此时* 也是返回false.集合类是唯一受到特殊对待的*/def str = "hell0"//trueif (str) {println(true)} else {println(false)}//falsedef aa = []if (aa) {println(true)} else {println(false)}println null == false // 输出falseprintln null == true // 输出false//除了使用groovy内建的布尔求值约定,在自己的类中可通过实现// asBoolean()方法来编写自己的布尔转换BooleanValueTest booleanValueTest = new BooleanValueTest();booleanValueTest.age = 10//trueprintln !booleanValueTestbooleanValueTest.age = 20//falseprintln !booleanValueTest}}
javaBean
-
javaBean,对于Groovy而言,不区分public、private、protected。groovy默认会为属性创建一个setter和getter方法,对于final属性,groovy只会创建一个getter不会创建setter方法,如果修改final属性将导致异常
def class Person {//属性设置为只读,如果修改final将导致异常final name ="jannal"int age//可以把字段标记为private但是groovy不遵守这点//如果想把字段私有,必须实现一个拒绝任何修改的setterprivate int sex=40;private void setSex(sex){throw new IllegalAccessException("不允许修改sex");}public static void main(String[] args) {Person person = new Person()//相当于setAgeperson.age = 18//相当于getAgeprintln(person.age)println(person.name)println(person.sex)//.class不能用于Map和Builder等类型,为了保险起见//使用getClass().getName()println(person.class.name);println(person.getClass().getName())}}
操作符
- Groovy支持操作符重载,可以巧妙地应用这一点来创建DSL。Groovy通过每个操作符映射一个标准的方法来支持操作符重载。
实现接口
-
Groovy没有强制实现接口中的所有方法:可以只实现自己关心的方法,而不需要考虑其他方法。当在单元测试中通过实现接口来模拟某些行为时,这项技术非常有用
interface A{void a()void b()void c()}interface B{void c()}def class AA{def aa(A a){a.a()}def bb(A b){b.b()}def ab(A ab){ab.a()ab.b()}def dd(def m){m.c()}public static void main(String[] args) {def AA aa = new AA()//输出:A的a方法实现//groovy并没有强制实现所有方法,可以只定义自己关心的方法,而不需要//考虑其他方法。借助as操作符相当于实现了接口aa.aa({println("A的a方法实现")} as A)//如果要实现多个方法,需要创建一个映射,以每个方法的名字作为key,方法//对应的代码作为value,使用:分隔def implMethods=[a:{println("A的a方法实现")},b:{println("A的b方法实现")}]//输出//A的a方法实现//A的b方法实现aa.ab(implMethods as A )/***如果知道所实现接口的名字使用as操作符即可,但是如果应用要求的行为是动态的* 而且只有在运行的时候才知道接口的名字,可以使用asType*/aa.dd({println "cc-B"}.asType(Class.forName("com.jannal.one.B")))aa.dd({println "cc-A"}.asType(Class.forName("com.jannal.one.A")))}}
trait关键字
-
trait修饰的接口可以被看作是承载默认实现和状态的接口。一个类可以同时拥有多个trait而不需要使用多重继承。trait中的this关键字代表了trait的实现的实例
/*** 游泳的能力*/trait SwimmingAbility {def swim() {println "swimming.."}}/*** 飞行的能力*/trait FlyingAbility {def fly() {println "flying.."}def fly2() {println "${this.class.name} is flying.."}}/*** 金鱼实现游泳的行为,就具备游泳的能力*/class Goldfish implements SwimmingAbility {}/*** 鸭子既具备游泳的能力,又具备飞行的能力*/class Duck implements SwimmingAbility, FlyingAbility {}class TraitTest {public static void main(String[] args) {def goldfish = new Goldfish()goldfish.swim()def duck = new Duck()duck.swim()duck.fly()//输出:com.jannal.trait.Duck is flying..duck.fly2()}}
-
trait使用extends关键字实现继承
trait Dealer {def getProfit() {println "3000"}def deal() {println "base deal"}}trait CarDealer extends Dealer {def deal() {println "CarDealer deal"}}
-
多实现方法冲突
trait Bike {def drive() {println "Bike drive"}}trait Car {def drive() {println "Car drive"}}/*** 同时实现多个trait,相同的方法会冲突,以最后一个实现为准* 这里最后一个实现是Bike*/class DrivingThing implements Car, Bike {}class TraitTest2 {public static void main(String[] args) {def drivingThing = new DrivingThing()//输出:Bike drivedrivingThing.drive();}}
代码生成注解
-
Groovy在groovy.transform包和其他的包中提供了很多代码生成注解
-
@Canonical:如果要编写的toString方法只是简单显示以逗号分隔的字段值,可以使用
@Canonical
让编译器来生成,默认会生成所有字段,可以手动排除字段//@Canonical@Canonical(excludes = "sex,age")class CanonicalTest {String name ="jannal"int age = 12String sex="男"static void main(String[] args) {def test = new CanonicalTest()/*** 不加excludes 输出com.jannal.one.CanonicalTest(jannal, 12, 男)* @Canonical(excludes = "sex,age")* 输出 com.jannal.one.CanonicalTest(jannal)*/println(test)}}
-
@Delegate:委托
class Worker {def work() { println 'work' }def analyze() { println 'worker analyze' }}class Expert {def analyze() { println 'expert analyze' }}/*** 1. 编译时,Groovy会检查Manager类,如果该类中没有被委托类中的方法* 就把这些方法从被委托类中引入进来。因此它会引入Expert类的analyze()方法* 而从Worker类中,只会把work()方法引入进来,因为Expert类的analyze()已经出现* 在Manager类中,所以Worker类中的analyze()会被忽略* 2. manager中生成的方法如下* def analyze(){* expert.analyze()* }* 3. 如果Worker或者Expert中新增方法,只需要重新编译,不需要对Manager修改*/class Manager{@Delegate Expert expert = new Expert();@Delegate Worker worker = new Worker();public static void main(String[] args) {def manager = new Manager();//expert analyzemanager.analyze()//workmanager.work()}}/*** 调整委托顺序,则输出worker analyze而不是expert analyze*/class Manager1{@Delegate Worker worker = new Worker();@Delegate Expert expert = new Expert();public static void main(String[] args) {def manager = new Manager1();//worker analyzemanager.analyze()//workmanager.work()}}/*** 手动排除expert的analyze*/class Manager2{@Delegate Worker worker = new Worker();@Delegate(excludes = "analyze") Expert expert = new Expert();public static void main(String[] args) {def manager = new Manager2();//workmanager.work()//worker analyzemanager.analyze()}}
-
@Immutable:不可变对象。使用@Immutable标记一个类,Groovy会将其字段标记为final的,并且额外创建了一些方法
/*** groovy提供了一个构造器,其参数顺序与类中定义的字段顺序一样* groovy还添加了hashCode、equals()、toString*/@Immutableclass CreditCard{String cardNum;int creditLimit;}class ImmutableTest {public static void main(String[] args) {def creditCard = new CreditCard("1234-4567-89",1000)//com.jannal.one.CreditCard(1234-4567-89, 1000)println creditCard.toString()}}
-
@Lazy: 可以把耗时对象的构建推迟到真正需要的时候。既可以在声明的地方直接初始化实例,也可以将创建逻辑包在一个闭包中
class Heavy {def size = 10Heavy() {println "init $size"}}/*** @Lazy Groovy不仅推迟了创建,还将字段标识为volatile,并确保创建时间是线程安全的* 实例会在第一次访问这些字段的时候被创建*/class AsNeeded {def value@LazyHeavy heavy1 = new Heavy()@LazyHeavy heavy2 = { new Heavy(size: value) }()AsNeeded() {println("Created AsNeeded")}}class LazyTest {public static void main(String[] args) {/*** Created AsNeeded* init 10* 10* 10* init 10* 1000*/def asNeeded = new AsNeeded(value: 1000)println asNeeded.heavy1.sizeprintln asNeeded.heavy1.sizeprintln asNeeded.heavy2.size}}
陷阱
-
Groovy的==等价于java的equals()
-
Groovy的is()等价于java的==
-
Groovy的映射到equals()这个结论并从总是成立,当且仅当该类没有实现Comparable接口时,才会这样映射。如果实现了Comparable接口,则会映射到该类的compareTo()方法
-
Groovy的类型是可选的,Groovy编译器groovyc大多数情况下不会执行完整的类型检查。他只是进行强制类型转换,然后将其留给运行时处理。
-
如果调用了一个不存在的方法,也不会出现编译错误:groovy.lang.MissingMethodException异常。Groovy编译器可能看上起不够严格,但是对于groovy的动态和元变成等强项而言,这种行为是必要的。在2.x版本中,我们可以关闭这种动态类型特性,并增强编译时类型检查。
-
java中方法里可以加入代码块。但是在groovy中会感到困惑。Groovy编译器会错误地认为我们是要定义一个闭包,并给出编译错误。在Groovy中,方法内不能有任何这样的代码
public void method(){System.out.println("a");{System.out.println("b");}}
-
闭包与匿名内部类的冲突
- groovy的闭包是使用{}定义的,而定义匿名内部类也是使用{}
def class Car {Car(carBlock){println "hi car"carBlock()}public static void main(String[] args) {/*** 这个例子中我们调用构造器,接受一个闭包作为参数* 但是groovy认为我们是要创建一个匿名内部类,因而编译报错*///def car = new AnonymousConflict(){println ("i am carBlock") }//要绕开以上的陷阱,必须修改调用方式,将闭包放在构造器调用语句的圆括号内//也可以在调用时定义闭包,或传递一个引用该闭包的变量def car =new Car({prinln "i am carBlock"})def carBlock = {prinln "i am carBlock2"}def car1 = new Car(carBlock)} }
-
数组:在Groovy中,{…}块是为闭包而保留的,所以不能通过如下方式定义数组
int[] array = {1,2,3}或者(在java中正常,在groovy中编译错误)int[] arr = new int[]{1,2,3,4,5};//groovy如下方式定义基本类型数组int[] arr=[1,2,3,4,5]//输出: class is [I //JVM用[I表示int[]println "class is "+arr.getClass().name//使用as操作符创建数组def arr = [1,2,3,4,5] as int[]
-
方法调用
- 在Java中,则是根据声明的类型,在编译时选择方法。
public class MethodTest {public void run(String str) {System.out.println(1);}public void run(Object str) {System.out.println(2);}public static void main(String[] args) {MethodTest methodTest = new MethodTest();Object o = "Object";//2methodTest.run(o);Object str = "Object";//2methodTest.run(str);}}
- 在Groovy中,将在运行时选择将被调用的方法,即将基于运行时参数的类型来选择方法
class MethodTest {def run(String str) {System.out.println(1);}def run(Object str) {System.out.println(2);}public static void main(String[] args) {com.jannal.MethodTest methodTest = new com.jannal.MethodTest();Object o = "Object";//1methodTest.run(o);Object str = "Object";//1methodTest.run(str);}}
-
在Groovy中,在字段上省略修饰符不会像Java中一样变成package-private字段。可以通过使用
@PackageScope
注释来创建一个package-private字段。 -
Groovy使用Objects来做每一件事情,包括基本类型
class Foo {static int i}println Foo.class.getDeclaredField('i').type == int.classprintln Foo.i.class != int.class && Foo.i.class == Integer.class
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- aquatone截图
终端命令 echo baidu.com | ./aquatone screenshot 访问并截图 echo baidu.com | ./aquatone -out /Users/oker/Desktop/html/ screenshot 访问并截图保存到指定目录python调用 import osos.system(fcd {AQUATONE_PATH}f&& cat domain.txt | ./aquatone -out {SAVE_PA…...
2024/4/28 20:45:26 - Java学习打卡 Day3、4
Java学习打卡 Day3、4 嗐,最近太忙了以至于没时间写博客了,今天java也只看了一集 浮点数 与c中几乎完全相同 package hello;import java.util.Scanner;public class Hello {public static void main(String[] args) {double foot;double inch;Scanner in…...
2024/4/28 19:13:34 - 字典和遍历
字典和遍历 info {name: 班长, id: 100, sex: f, address: 地球亚洲中国北京} info {} # 定义空字典 info dict() # 定义空字典print(info[name]) print(info[address])print(info) print(type(info)) # <class dict># 默认遍历key for item in info:print(item)pri…...
2024/4/28 14:23:39 - 【Python强化】使用pandas和csv读取csv文件
一、pandas读取方式 1、csv介绍 csv文件是一种以逗号分割字符的文件形式 我们创建一个简单的文件demo.csv,如下格式的形式进行存储,以,进行分割 name,score,age,sex lhh,100,24,男 wcy,99,28,女2.读文件 直接读取 import pandas as pd …...
2024/4/28 3:32:46 - 程序员必备神器——Typora
Typora Typora 是一款跨平台的 Markdown 编辑器软件,支持 Markdown 的标准语法,同时这款软件还支持动态预览功能,一键预览,是一款不可多得的优质 Markdown 编辑器。 MarkDown Markdown 是一种轻量级标记语言,创始人为…...
2024/4/28 2:10:53 - Maskrcnn实现笔记---数据处理篇
目录前言一、labelme标定二、对data进一步处理1.数据增强2.json_to_dataset三、实际训练数据集处理前言 在深度学习中,数据集一般是指用作网络训练的数据集合。数据集包含输入和真实输出(ground truth)两部分,视觉类深度学习中输入为图片,输…...
2024/4/28 0:51:33 - C语言--编写程序,输入一个整数,判断它能否被3,5,7整除
编写程序,输入一个整数,判断它能否被3,5,7整除,并输出下列信息之一: 能同时被3,5,7整除;能被x和y两个数整除;能被x整除;不能被3,5,7任一个数整除。 #include <stdio.h> void main() { int…...
2024/4/28 19:16:47 - jQuery学习笔记
DOM对象与jQuery对象? dom对象转jquery对象: $(dom对象)jquery对象转dom对象:$(‘div’)[0] 常用方法 设置获取文本内容 > $().text() 获取标签中的所有文本,包括后代元素中的文本设置时,会覆盖原来的内容,如果设…...
2024/4/28 13:40:03 - 【ybtoj高效进阶 21175】DNA 序列(SAM)
DNA 序列 题目链接:ybtoj高效进阶 21175 题目大意 给你一个由四种字符组成的字符串,然后问你长度为 k 的子串中出现次数最多的串的出现次数。 1<k<10 思路 其实因为 1⩽k⩽101\leqslant k\leqslant 101⩽k⩽10,而且只有四种字符&a…...
2024/4/28 13:07:37 - Java全栈(二)JavaSE:19.常用类之大数运算、日期和日历、包装类
1. 大数运算 基本数据类型long ,double 都是有取值范围.遇到超过范围数据怎么办.引入了大数运算对象. 超过取出范围了,不能称为数字了,称为对象 java.math包 : BigInteger大整数, BigDecimal大浮点(高精度,不损失精度) BigInteger类使用,计算超大整数的 构造方法直接new Big…...
2024/4/28 17:58:44 - 2.python------选择流程和循环流程
一、选择流程 #猜拳小游戏 # 0:石头 1:剪刀 3:布 import random #直接导入产生随机数的模块 personint(input(请出拳[0:石头 1:剪刀 3:布]:)) computerrandom.randint(0,2) if person0 and computer1:print(恭喜你 你赢了 )pass elif person1 and computer3:print(恭喜你 你…...
2024/4/28 4:48:49 - 使用uni-app uniPush功能实现对APP消息推送
Hbuilder 模块配置–>push打勾 点击HBuilder下面的 “配置”,会自动跳转到DCloud Web 后台配置 若当前没开通,需要输入包名、SH1,SH1是打包时使用证书的SHA1。查看代码 keytool -list -keystore 签名证书文件名及后缀开通后,…...
2024/4/28 11:34:07 - c语言除号“/”的基本规则
c语言中的除号是“/”。 用的int,float类型分别做除数 1、int/int : 结果为int型,如1/2,结果为0 2、int/float : 结果仍为0 3、float/int : 结果为0.500000 4、float/float : 结果为0.50000…...
2024/4/28 18:48:40 - RobotFramework自动化测试之跳转窗口
一、跳转窗口1、跳转窗口需要Select Window By Handle关键字,但是类库中没有对应的关键字,需要我们进行如下操作 :①、在D:\gongju\python\Lib\site-packages\SeleniumLibrary\locatorswindowmanager.py中添加:def select_by_hand…...
2024/4/27 4:00:07 - 学习c语言一个礼拜后写的第一份game
纪录一下自己的成长。 2021 11,3...
2024/4/27 22:53:27 - Day_1 数据库基础
一、数据库 数据库概述 在操作系统中使用文件进行数据存储,跨平台性能 要差一些,而数据库是可以解决数据跨平台问题的数据库 : 望文知义 就是遵循一定数据格式的数据集合,可以认为是对文件系统的改进 ,解决了操作系统跨平台问题只要是同一个数据库文件,即使在Windows迁移到lin…...
2024/4/29 0:37:52 - Codeforces Round #753 (Div. 3)题解(待更新)
这次的战绩。 A题:好像没什么好说的,记录一下每个字符的位置,和上一次的位置就行了 #include <iostream> #include <cstring> #include <algorithm> #include <vector> #include <math.h> #include <map> #includ…...
2024/4/28 18:05:09 - vue-element-admin动态菜单手动增加菜单
效果图:菜单栏 增加 ” 文件管理 “ 后端:access数据表 手动增加 因为是手动增加的 超级管理员存在bug没有及时看到 要在role_access表手动增加这”文件管理“菜单 新建文件夹files/files_list.vue 在路由router/index.js文件增加 看到效果...
2024/4/28 12:09:03 - 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数(Javascript)
一、题目链接 https://leetcode-cn.com/problems/w3tCBm/ 二、具体思路 解题思路 动态规划 位运算对于所有的数字,只有奇数和偶数两种:1、奇数:二进制表示中,奇数一定比前面那个偶数多一个 1,因为多的就是 最低位的…...
2024/4/28 18:11:40 - Java流程控制for循环
基本语法: for (初始化;条件判断;迭代){//代码块 }关于for的几点声明 1 首先最先执行初始化步骤,可以声明一种类型,可以初始化一个或多个循环控制变量,也可以是空语句 2 然后检查布尔表达式 如果T 则执行 如果F则寻循环终止&…...
2024/4/20 10:27:04
最新文章
- 基于Spring Boot的商务安全邮件收发系统设计与实现
基于Spring Boot的商务安全邮件收发系统设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 已发送效果图,用户可以对已发送信息…...
2024/4/29 2:32:20 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 整理的微信小程序日历(单选/多选/筛选)
一、日历横向多选,支持单日、双日、三日、工作日等选择 效果图 wxml文件 <view class"calendar"><view class"section"><view class"title flex-box"><button bindtap"past">上一页</button&…...
2024/4/26 15:51:28 - app上架-您的应用存在最近任务列表隐藏风险活动的行为,不符合华为应用市场审核标准。
上架提示 您的应用存在最近任务列表隐藏风险活动的行为,不符合华为应用市场审核标准。 修改建议:请参考测试结果进行修改。 请参考《审核指南》第2.19相关审核要求:https://developer.huawei.com/consumer/cn/doc/app/50104-02 造成原因 …...
2024/4/26 2:20:33 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/28 13:52:11 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/28 3:28:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/29 2:29:43 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/28 13:51:37 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/28 15:57:13 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/28 1:22:35 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57