<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[singkingcho的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/singkingcho</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; singkingcho]]></copyright><item><title><![CDATA[dubbogo与Java互通的group问题]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/133947085</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/133947085</guid><author>singkingcho</author><pubDate>Fri, 20 Oct 2023 15:11:51 +0800</pubDate><description><![CDATA[如果不这么写，会导致Java这边消费不到，如果都是用默认的DEFAULT_GROUP没这个问题。]]></description><category></category></item><item><title><![CDATA[dubbogo-02 将服务注册到nacos]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/133940061</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/133940061</guid><author>singkingcho</author><pubDate>Fri, 20 Oct 2023 09:56:40 +0800</pubDate><description><![CDATA[需要替换为自己使用的group namespace等，启动server，我们可以看到这里注册成功了。注意，我们这里改用的dubbo协议后原来的client是无法调用成功的。client也改成20002 在triple协议上使用，这样就都可以了。]]></description><category></category></item><item><title><![CDATA[dubbogo-1 基础rpc服务]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/133939015</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/133939015</guid><author>singkingcho</author><pubDate>Fri, 20 Oct 2023 09:43:21 +0800</pubDate><description><![CDATA[这样就会出现在 go/bin 目录里面了，如果已经增加了这个环境变量了，就可以使用该命令了。当然默认的样例工程其实已经包含了编译好的文件。翻译出来的go代码对应核心的地方就是这里。分别启动server端和client端。可以直接用reply.xxx 取值。client代码增加注释。这个的提供的样例模块。protoc的定义是。]]></description><category></category></item><item><title><![CDATA[记录dubbo的一个异常 ArrayIndexOutOfBoundsException]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/132670177</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/132670177</guid><author>singkingcho</author><pubDate>Mon, 04 Sep 2023 15:34:50 +0800</pubDate><description><![CDATA[客户端提交了一个分页500，查询数据量较大的时候会有这个问题，反之则没有这个问题。根据fastjson2的描述，升级到2.0.40版本后问题解决。]]></description><category></category></item><item><title><![CDATA[python安装后的几个默认目录问题]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/131162115</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/131162115</guid><author>singkingcho</author><pubDate>Mon, 12 Jun 2023 09:23:07 +0800</pubDate><description><![CDATA[C:\Users\dao\AppData\Local\Programs\Python\Python311C:\Users\dao\AppData\Local\Programs\Python\Python311\Lib\site-packages]]></description><category></category></item><item><title><![CDATA[pandas长整数列转换为可读时间]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/125820411</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/125820411</guid><author>singkingcho</author><pubDate>Sat, 16 Jul 2022 15:22:15 +0800</pubDate><description><![CDATA[假设存储了一个时间戳1657896388466（毫秒，需要得到可读的时间。unit还可以调整为其它的单位，比如秒之类的。]]></description><category></category></item><item><title><![CDATA[scala jongo操作mongodb]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/124896758</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/124896758</guid><author>singkingcho</author><pubDate>Sat, 21 May 2022 12:28:36 +0800</pubDate><description><![CDATA[依赖

libraryDependencies += "org.jongo" % "jongo" % "1.5.0"

libraryDependencies += "org.mongodb" % "mongo-java-driver" % "3.11.3"

模型
由于我们是用的java的驱动，并非scala系列的驱动，所以用普通class，非case class
class Session {
  var _id: ObjectId = _
  var user_id: String = _
  var]]></description><category></category></item><item><title><![CDATA[数据库存储秒转换为可阅读的时间]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/122454671</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/122454671</guid><author>singkingcho</author><pubDate>Wed, 12 Jan 2022 15:30:14 +0800</pubDate><description><![CDATA[场景
存储行情数据的表
SELECT  symbol,`close`,open_time FROM kline_3m  ORDER BY open_time DESC;


这样的时间不方便看出什么时间，需要转换下
处理
使用函数FROM_UNIXTIME 可以解决这个问题
SELECT  symbol,`close`,FROM_UNIXTIME(open_time) FROM kline_3m  ORDER BY open_time DESC;


...]]></description><category></category></item><item><title><![CDATA[mysql删除某天前的数据]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/122454487</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/122454487</guid><author>singkingcho</author><pubDate>Wed, 12 Jan 2022 15:25:04 +0800</pubDate><description><![CDATA[场景
数据库中有某些数据中存储了时间戳（秒），需要根据这个时间去清理几天前的数据，比如说5天前，假设当前是1月5号，我们要清除的1月1号0点前的数据
获取当前的日期
SELECT CURRENT_DATE;

获取几天前
这个可以使用日期增减函数实现
SELECT DATE_ADD(CURRENT_DATE,INTERVAL -5 DAY);

这样得到了5天前的时间
然后我们需要做的就是将其转换为秒
SELECT UNIX_TIMESTAMP(DATE_ADD(CURRENT_DATE,INTERVAL ]]></description><category></category></item><item><title><![CDATA[scala-pattern-match-basic]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120487232</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120487232</guid><author>singkingcho</author><pubDate>Sun, 26 Sep 2021 13:41:25 +0800</pubDate><description><![CDATA[模式匹配概念
对数据进行深度分解和检查的一个功能，极其强大
涉及到两个术语：

extraction	提取
deconstruction   解构

在后面深入分析他俩
基础语法
类比Java中的swith
选择器 match {分支们}

每个分支就是一个模式，都是以case作为开头
我们要研究有哪些模式
模式类型

通配模式
常量模式
变量模式
构造方法模式
序列模式
元组模式
附带类型模式

通配模式
意思就是啥都能匹配
def myMatch(x:Any) = x match {
  case _ ]]></description><category></category></item><item><title><![CDATA[scala3-trait-basic]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120476593</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120476593</guid><author>singkingcho</author><pubDate>Sat, 25 Sep 2021 20:20:43 +0800</pubDate><description><![CDATA[特质概念
Scala没有提供Java中的接口概念，取而代之是一个更强大的特质概念
定义特质
和定义class类似，修饰词由class变为trait
trait A:
end A

特质里面可以包含很多成分，我们先看下方法
特质方法
特质和类类似，可以有方法，字段等，我们先看方法，特质中的方法如果给出方法体就是具体的，否则位抽象的，不用添加abstract修饰
trait Cheatable:

  // 抽象方法
  def cheat():Unit
  // 具体方法
  def beauty():Uni]]></description><category></category></item><item><title><![CDATA[scala3-repl]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120464978</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120464978</guid><author>singkingcho</author><pubDate>Fri, 24 Sep 2021 23:33:19 +0800</pubDate><description><![CDATA[如果我们需要研究一些小的知识点，直接建立一个项目有点麻烦，这个时候可以利用简单的交互环境来实验即可
进入交互解释器
scala



可以看到这个环境会自动评估我们键入的内容，并且输出
repl含义

read
eval
print
loop

结合四个单词意思就很明确了
循环读取评估打印

...]]></description><category></category></item><item><title><![CDATA[csdn-暗黑调整-stylus]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120463503</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120463503</guid><author>singkingcho</author><pubDate>Fri, 24 Sep 2021 21:30:16 +0800</pubDate><description><![CDATA[html body {
    background-color: black!important;
}


html body .main_father {
    background-color: black!important;
}

html body  main .blog-content-box {
    background-color: black!important;
    

}

html body  main .blog-content-box p {
    color:wh]]></description><category></category></item><item><title><![CDATA[scala3-case-class-basic]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120460564</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120460564</guid><author>singkingcho</author><pubDate>Fri, 24 Sep 2021 18:07:01 +0800</pubDate><description><![CDATA[case class 概念
样例类，scala针对这种特殊类提供很多默认的方便的功能，更重要的是，和模式匹配完美配合
case class create
case class Fruit(name:String,weight:Double):
end Fruit

case class instance create
val fruit = Fruit("苹果",23.5)

case class背后的工作
scala会针对case class创建对应的伴生对象，并且自动重写了部分方法

toString
]]></description><category></category></item><item><title><![CDATA[scala3-set]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120458624</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120458624</guid><author>singkingcho</author><pubDate>Fri, 24 Sep 2021 16:49:55 +0800</pubDate><description><![CDATA[set概念
一组无序数据集
set创建
val set = Set(
    "martin",
    "james",
    999,
    334,
    "love"
)

println(set)

默认使用的set是
val Set         = immutable.Set

也就是不可改变的是Set
大部分都是集合类通用方法，其中的head，tail等操作和List中定义的是一样的，不在这里单独描述，集合类数据通用方法文章里面单独研究

...]]></description><category></category></item><item><title><![CDATA[scala3-map]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120458273</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120458273</guid><author>singkingcho</author><pubDate>Fri, 24 Sep 2021 16:38:53 +0800</pubDate><description><![CDATA[map概念
键值映射的集合
map创建
val map = Map(
  "maxAge"-&gt;200,
  20 -&gt; "贰拾"
)

注意符号-&gt;
根据key获取值
val map = Map(
  "maxAge"-&gt;200,
  20 -&gt; "贰拾"
)

println(map.get(20))
println(map.get("maxAge"))

注意get的是Some类型

Some(贰拾)
Some(200)

如果没有对应的key
println(map.ge]]></description><category></category></item><item><title><![CDATA[scala3-string]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120452820</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120452820</guid><author>singkingcho</author><pubDate>Fri, 24 Sep 2021 12:47:03 +0800</pubDate><description><![CDATA[字符串概念
一组字符的集合，Scala的字符串就是Java的字符串，在Predef.scala中有明确的定义：
type String        = java.lang.String

既然这样，对Java字符串有足够了解，就不必重复这些了，我们只研究下插值字符串的问题
插值字符串
共有三种模式

f
s
raw

f模式
val price = 63.0000

println(f"价格是：$price")

结果显示

价格是：63.0

f其实是格式化的意思，这里没有格式化符号修饰，默认后面的多余]]></description><category></category></item><item><title><![CDATA[scala3-array]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120452235</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120452235</guid><author>singkingcho</author><pubDate>Fri, 24 Sep 2021 11:47:56 +0800</pubDate><description><![CDATA[数组概念
同类型数据的集合，长度固定
创建数组
val arr = new Array[Int](3)

数字3代表元素类型，Int是数据类型，元素默认值，根据类型决定
这里就是0
访问指定元素
通过索引访问，注意使用()非[]，因为其本质是在调用方法
val arr = new Array[Int](3)
println(arr(1))

等价于下面的写法
val arr = new Array[Int](3)
println(arr.apply(1))

修改元素
val arr = new Array]]></description><category></category></item><item><title><![CDATA[scala3-if]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120439073</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120439073</guid><author>singkingcho</author><pubDate>Thu, 23 Sep 2021 17:16:37 +0800</pubDate><description><![CDATA[scala2的if
基本的模式是
if (condition) {
    
}

val age = 18

if (age == 18) {
  println("成年了")
}

如果只有一行，可以省略 {}
val age = 18

if (age == 18)   
	println("成年了")

也可以之前将内容行写在if所在行
val age = 18

if (age == 18)   println("成年了")


if后的()是不可以省略的哦

scala3的if
scala3开始]]></description><category></category></item><item><title><![CDATA[scala3-tuple]]></title><link>https://blog.youkuaiyun.com/singkingcho/article/details/120438427</link><guid>https://blog.youkuaiyun.com/singkingcho/article/details/120438427</guid><author>singkingcho</author><pubDate>Thu, 23 Sep 2021 16:50:45 +0800</pubDate><description><![CDATA[元组概念
Java里面没有这个概念，类似python这样的语法内置了元组，所谓元组就是一种可以包含不同数据类型的数据集
比如我们同时描述一个人的年龄，狗的名称，和你喜欢的球员，并且我们只是简单的使用，并不会大面积的复用，这个时候你怎么做

构建多个变量
构建一个Java类模型承载数据
元组

创建元组
比如我们创建三个元素的元组
val tp = new Tuple3(18,"小黄","wade")

数字3代表几个元素，这种写法稍显啰嗦，scala提供了更简单的方式，前面的new以及Tuple都省略
va]]></description><category></category></item></channel></rss>